首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用EditorForModel时不显示模型属性

使用EditorForModel时不显示模型属性
EN

Stack Overflow用户
提问于 2014-10-13 19:24:22
回答 1查看 99关注 0票数 0

我有mvc模型:

代码语言:javascript
复制
public class MyModel
{
    public int MyInt{ get; set; }
    public DateTime MyDateTime{ get; set; }

    [UIHint("_DropDown")]
    public DropDownListModel<object> MyDropDown { get; set; }

    public MyModel()
    {
        //initialize MyDropDown
    }
}

当我在视图中调用@Html.EditorForModel()时,我只是得到了MyIntMyDateTime的编辑器。我可以使用@Html.EditorFor(m => m.MyDropDown)MyDropDown添加编辑器。

如何在EditorForModel中添加MyDropDown编辑器

EN

回答 1

Stack Overflow用户

发布于 2014-10-13 19:58:30

我之所以将此作为答案,是因为我怀疑这是目前正确的方法,尽管与任何ASP.NET MVC答案一样,它很可能在下一个版本中变得不正确……

正如您可能知道的,Html.EditorForModel()只是一个帮助器,其结果与Html.EditorFor(model => Model)相同。我怀疑,它的当前行为在某种程度上仅限于任何给定模型上的原始类型。当然很方便,但并不像你的模型所需要的那样健壮。

虽然Html.EditorFor(m => m.MyDropDown)足够聪明,可以使用正确的模板作为编辑器,但我不相信Html.EditorFor(model => Model)足够聪明,可以为模型上的任何给定属性使用正确的模板,只有模型本身。(这可能有很好的理由,它的实现可能在这种灵活性和这种灵活性可能产生的一些问题之间进行了权衡。)

我想现在需要的方法是为MyModel创建一个自定义编辑器模板。在模板内部,您可以使用Html.EditorFor(m => m.MyDropDown),它将反过来使用其模板。我只是怀疑嵌套自定义模板必须是手动的,而不是自动的。

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

https://stackoverflow.com/questions/26338852

复制
相关文章

相似问题

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