gpt4 book ai didi

asp.net-mvc - 在显示模板中使用 DisplayFor

转载 作者:行者123 更新时间:2023-12-01 21:45:32 25 4
gpt4 key购买 nike

我创建了一个 htmlhelper 扩展来减少创建表单时的重复标记量:

public static MvcHtmlString RenderField<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression)
{
return htmlHelper.DisplayFor(expression, "formfield");
}

这个想法是,在我的 View 中,我只需编写 @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>

不幸的是,似乎不可能将 DisplayFor 嵌套在显示模板中(它不渲染任何内容)。我不想只使用 @Model 因为这样我就不会得到 bool 值的复选框、日期的日历控件等。

有什么好的办法可以解决这个问题吗?

最佳答案

不能嵌套DisplayFor()。参见这里:Is it possible to use DisplayFor() from within the EditorFor template control

您考虑过Html.DisplayForModel()吗?说明和示例代码可以在这里找到:http://msdn.microsoft.com/en-us/library/ee430907(v=VS.100).aspx

关于asp.net-mvc - 在显示模板中使用 DisplayFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6454709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com