首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@HTML.editorForModel()不为模型创建编辑接口

@HTML.editorForModel()不为模型创建编辑接口
EN

Stack Overflow用户
提问于 2013-10-18 13:07:02
回答 1查看 314关注 0票数 0

我有一个模型:菜单是subClass of menuComponent

菜单组件有两个属性:名称和描述都是字符串。

我创建了一个编辑视图,并尝试使用editorForModel()创建编辑字段。但是它没有为它创建任何编辑字段。

代码语言:javascript
复制
@using (Html.BeginForm())
{ 
    @Html.EditorForModel();
    <input type="submit" value="Save" /> 
    @Html.ActionLink("Cancel and return to List", "Index") 
}

我必须使用@HTML.EditorFor()来创建编辑文件

代码语言:javascript
复制
 @using (Html.BeginForm())
    { 
        @Html.EditorFor(m => m.Name);
        @Html.EditorFor(m => m.Description);
        <input type="submit" value="Save" /> 
        @Html.ActionLink("Cancel and return to List", "Index") 
    }

为什么会发生这种事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-18 13:18:18

这是我向微软报告的一个bug:http://connect.microsoft.com/VisualStudio/feedback/details/636341/modelmetadata-fromlambdaexpression-has-changed-in-asp-net-mvc-3-rtm

基本上,编辑器和显示模板只查找模型的确切当前类型的属性,而不是父类中的属性。

他们的官方答覆是:

你好达林(和其他人), 这是我们在ASP.NET MVC 3中引入的一个有意的改变,是在对继承的模型提供更好的支持还是对实现接口的模型提供更好的支持之间进行权衡的结果。最后,我们倾向于采用继承的模型,从我们的经验来看,这是一种更常见的方法。 根本的问题是,当接口由类实现时,类并不真正继承接口的任何成员。这里的关键是,因为它没有继承接口的成员,所以它也不会继承那些成员的元数据。 谢谢,ASP.NET团队

因此,基本上,他们不认为它是一个错误,但它是故意的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19450484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档