Помогите, что я сделал не так? Полная версия ошибки:
System.InvalidOperationException: Элемент модели, переданный в словарь, имеет тип "System.Int32", но для этого словаря требуется элемент модели типа "Labs5.Models.Calc".
Листинг Calc.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace Labs5.Models
{
public class Calc
{
[Required(ErrorMessage ="Число не введено")]
public int a { get; set; }
public string[] CalcRes;
}
}
Листинг SquareController.cs:
using Labs5.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Labs5.Controllers
{
public class SquareController : Controller
{
[HttpGet]
// GET: Square
public ActionResult Calculate()
{
return View();
}
[HttpPost]
public ActionResult CalculateResult(Calc calcx)
{
calcx.CalcRes = new string[calcx.a];
int a = calcx.a;
int sq = a * a;
//calcx.CalcRes[sq] = String.Format("{0} = {1}", a, sq);
return View("CalculateResult", sq);
}
}
}
Листинг Calculate.cshtml
@using System.Web.Optimization;
@using Labs5.Models
@model Calc
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Calc</title>
@Scripts.Render("~/scripts/jquery-1.8.0.js")
@Scripts.Render("~/scripts/jquery.unobtrusive-ajax.js")
</head>
<body>
<div>
@using (Ajax.BeginForm("CalculateResult", new AjaxOptions { UpdateTargetId = "results" }))
{
<p>
@Html.Label("Введите число")
@Html.EditorFor(c=>c.a)
</p>
<p>
<input type="submit" value="Вычислить" />
</p>
}
<div id="results"></div>
</div>
</body>
</html>
Листинг CalculateResult.cshtml
@using Labs5.Models
@model Calc
<h2>CalculateResult</h2>
<body>
Ответ: Корень @Model.a равен @Model.CalcRes
</body>
<a href="/Square/Calculate">Вычислить еще</a>
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости