加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – MVC 4 Html.EditorFor无效

发布时间:2020-12-16 09:53:15 所属栏目:asp.Net 来源:网络整理
导读:我想使用反射显示编辑页面,遍历我的对象的所有属性,并为每个属性创建正确的编辑控件. 我的视图看起来很好,我运行应用程序和编辑控件按预期显示,但是,我想要编辑id = 4的对象,通常我应该在页面上这个对象一次使用编辑控件对于每个属性,问题是我不止一次得到同
我想使用反射显示编辑页面,遍历我的对象的所有属性,并为每个属性创建正确的编辑控件.
我的视图看起来很好,我运行应用程序和编辑控件按预期显示,但是,我想要编辑id = 4的对象,通常我应该在页面上这个对象一次使用编辑控件对于每个属性,问题是我不止一次得到同一个对象,该对象在页面上重复多次,具有相同的控件和属性.我在这里错过了什么吗?

...
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Test</legend>
        <table>
        @{
            var props = Model.GetType().GetProperties();}
            @foreach (var prop in props)
            {
                <tr>
                    <td><div>@Html.EditorFor(model => Model,prop.GetValue(Model,null))</div></td>
                </tr>                                
            }
        </table>
    </fieldset>
}
...

解决方法

EditorFor帮助器的第二个参数完全不符合您的想法.您似乎试图为其提供值并期望此值将显示在生成的文本框中,但这不是此参数的用途.此参数称为additionalViewData,顾名思义,它允许您将自定义附加视图数据传递给编辑器模板.但是,如果您没有自定义编辑器模板,可以对此视图数据执行一些有用的操作,那么您不会指望会发生太多事情.

我建议你阅读following blog post以更好地熟悉ASP.NET MVC中的模板.

但是要真正回答您的问题,您似乎正在尝试编写一个自定义模板,该模板将呈现对象的每个属性.您可以编写一个自定义编辑器模板来完成这项工作.布拉德·威尔逊在following post中阐述了这个概念(看看文章末尾的“浅水潜水与深潜”一节).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读