尝试访问/使用MVC5中的默认编辑器模板时。
我收到错误:
传入字典的模型项是“System.String”类型, 但是这个字典需要一个类型的模型项 'MvcContrib.UI.InputBuilder.Views.PropertyViewModel`1 [System.Object的]'。
为什么会这样?
一些背景知识:
我的模型(TestModel.cs):
namespace MyTest.Web.Controllers.Models
{
public class TestModel
{
public TestModel()
{
Name = "Fred";
}
public string Name { get; set; }
}
}
我的控制器(MyTestController.cs):
namespace MyTest.Web.Controllers
{
public class MyTestController : Controller
{
[HttpGet]
public ActionResult Index()
{
TestModel testData = new TestModel();
return View(testData);
}
...
}
}
我的观点(Index.cshtml):
@model MyTest.Web.Controllers.Models.TestModel
@{
ViewBag.Title = "MyTest";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<div class="mainDisplay">
<h2>Test</h2>
<div>
@using (Html.BeginForm("ProcessResults", "MyTest", FormMethod.Post))
{
<div style="display:block;">
<div style="display:inline;">Name:</div>
<div style="display:inline;">@Html.EditorFor(x => x.Name)</div>
</div>
<div style="display:block;">
<input type="submit" name="Submit" value="Submit" />
</div>
}
</div>
</div>
错误发生在以下行
<div style="display:inline;">@Html.EditorFor(x => x.Name)</div>
,视图无法呈现
我尝试过的事情:
~/Views/Shared/EditorTemplates/Name.cshtml
下添加自定义编辑器模板并调用@Html.EditorFor(x => x.Name, "Name")
,则页面呈现@Html.TextBoxFor(x => x.Name, "Name")
,则页面呈现最后,该解决方案具有System.Web.Mvc程序集(应该包含默认的编辑器模板)。
我缺少什么?