ASP MVC 5 Html.Editor不工作/无法访问/使用默认编辑器模板

时间:2015-06-04 19:53:50

标签: c# asp.net-mvc asp.net-mvc-4 razor asp.net-mvc-5.1

尝试访问/使用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>

,视图无法呈现

我尝试过的事情:

  • 来自“ASP.NET MVC Basics Part 1: View Model binding”的示例和此示例的工作没有问题。
  • 如果我在~/Views/Shared/EditorTemplates/Name.cshtml下添加自定义编辑器模板并调用@Html.EditorFor(x => x.Name, "Name"),则页面呈现
  • 如果我将代码更改为@Html.TextBoxFor(x => x.Name, "Name"),则页面呈现

最后,该解决方案具有System.Web.Mvc程序集(应该包含默认的编辑器模板)。

我缺少什么?

0 个答案:

没有答案