如何隐藏属性:
[Display(Name = "dspName")]
或者(razor)视图中我变量的变量名?
我的问题是我为布尔值定义了一个自定义模板,它可以查看布尔值,如:
varname/displayName: 'box'
如果我用:
创建视图@Html.EditorForModel(Model)
结果是:
varname/displayName
varname/displayName: 'box'
浏览器中的结果:
编辑:我的BooleanTemplate
@model System.Boolean?
@{
string name = string.Empty;
if (!string.IsNullOrWhiteSpace(ViewData.ModelMetadata.DisplayName))
{
name =ViewData.ModelMetadata.DisplayName;
}
else
{
name = ViewData.ModelMetadata.PropertyName;
}
}
@name:
@Html.CheckBox("", Model.HasValue ? Model : Model.Value)
答案 0 :(得分:2)
您看到的附加标签将被烘焙到Object类的default editor template中。所以你有两种可能性:
@Html.EditorFor(x => x.SomeBoolProperty)
等,而不是@Html.EditorForModel()
修改对象类(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
{
@*if (!String.IsNullOrEmpty(Html.Label(prop.PropertyName).ToHtmlString()))
{
<div class="editor-label">@Html.Label(prop.PropertyName)</div>
}*@
<div class="editor-field">
@Html.Editor(prop.PropertyName)
@Html.ValidationMessage(prop.PropertyName, "*")
</div>
}
}
}