Oen*_*ria 5 asp.net-mvc asp.net-mvc-3 asp.net-mvc-2
我创建了一个 htmlhelper 扩展来减少创建表单时的重复标记量:
public static MvcHtmlString RenderField<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression)
{
return htmlHelper.DisplayFor(expression, "formfield");
}
Run Code Online (Sandbox Code Playgroud)
这个想法是,在我的视图中,我可以只写@Html.RenderField(x=>x.MyFieldName)
,它就会打印标签和字段的内容,并div
已放置适当的标签。
在 displaytemplates 文件夹中,我创建了 formfield.cshtml,其中包含以下内容:
<div class="display-group">
<div class="display-label">
@Html.LabelFor(x => x)
</div>
<div class="display-field">
@Html.DisplayFor(x => x)
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎不可能将 DisplayFor 嵌套在显示模板中(它不渲染任何内容)。我不想只是使用,@Model
因为那样我就不会得到布尔值的复选框、日期的日历控件等。
有没有好的办法解决这个问题?
你不能筑巢DisplayFor()
。请参阅此处:是否可以在 EditorFor 模板控件中使用 DisplayFor()
你有没有考虑过Html.DisplayForModel()
?说明和示例代码可以在这里找到:http://msdn.microsoft.com/en-us/library/ee430907 (v=VS.100).aspx
归档时间: |
|
查看次数: |
1840 次 |
最近记录: |