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

asp.net-mvc – EditorForModel – 使用editorfor时复制标签

发布时间:2020-12-16 07:18:29 所属栏目:asp.Net 来源:网络整理
导读:我在ASP.NET MVC应用程序中使用了许多编辑器模板来处理不同的数据类型(字符串,DateTime等).例如,以下是我用于字符串的内容: div class="editor-label" @Html.Label("")/divdiv class="editor-field" @Html.TextBox("",ViewData.TemplateInfo.FormattedModel
我在ASP.NET MVC应用程序中使用了许多编辑器模板来处理不同的数据类型(字符串,DateTime等).例如,以下是我用于字符串的内容:

<div class="editor-label">
     @Html.Label("")
</div>
<div class="editor-field">
    @Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue,new { @class = "text",placeholder = ViewData.ModelMetadata.Watermark })
    @Html.ValidationMessage("")
</div>

我想在我的视图中使用EditorForModel,但是当我这样做时,似乎为每个属性添加了它自己的标签,导致重复的标签(因为我的字符串编辑器模板中有一个标签).有什么办法,除了从我的字符串editortemplate(在这个例子中)删除标签,我可以告诉editorformodel不要插入标签?

解决方法

一种可能性是覆盖 default object editor template(?/ Views / Shared / EditorTemplates / Object.cshtml)并删除它添加的标签:

@if (ViewData.TemplateInfo.TemplateDepth > 1) 
{
    @ViewData.ModelMetadata.SimpleDisplayText
}
else 
{
    foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForEdit && !ViewData.TemplateInfo.Visited(pm))) 
    {
        if (prop.HideSurroundingHtml) 
        {
            @Html.Editor(prop.PropertyName)
        }
        else 
        {
            <div class="editor-field">
                @Html.Editor(prop.PropertyName)
                @Html.ValidationMessage(prop.PropertyName)
            </div>
        }
    }    
}

(编辑:李大同)

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

    推荐文章
      热点阅读