gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 2 编辑器模板中字段的渲染标签

转载 作者:行者123 更新时间:2023-12-01 04:18:33 24 4
gpt4 key购买 nike

我开始在 ASP.NET MVC 和强类型模板助手中使用 DataAnnotations。

现在我在我的 View 中有这个(Snippet 是我的自定义类型,Created 是日期时间):

 <tr>
<td><%= Html.LabelFor(f => Model.Snippet.Created) %>:</td>
<td><%= Html.EditorFor(f => Model.Snippet.Created)%></td>
</tr>

DateTime 的编辑器模板是这样的:
 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<%=Html.TextBox("", Model.ToString("g"))%>

但现在我想把整个 <tr> 放入编辑器模板中,所以我想在我看来只有这个:
 <%= Html.EditorFor(f => Model.Snippet.Created)%>

在编辑器模板中也有类似的东西,但我不知道如何渲染 for对于标签属性,它应该是 Snippet_Created对于我的示例,与文本框的 id\name 相同,因此伪代码:
 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<tr>
<td><label for="<What to place here???>"><%=ViewData.ModelMetadata.DisplayName %></label></td>
<td><%=Html.TextBox("", Model.ToString("g"))%></td>
</tr>
Html.TextBox()让第一个参数为空,并且文本框的 id\name 正确生成。

提前致谢!

最佳答案

我在这里找到了一个解决方案:Rendering the field name in an EditorTemplate (rendered through EditorFor())

不过好像有点啰嗦,可能是可以封装在自定义的Html Helper中:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime>" %>
<tr>
<td>
<label for="
<%= ViewData.TemplateInfo.HtmlFieldPrefix.Replace(
".",
HtmlHelper.IdAttributeDotReplacement)
%>">
<%= ViewData.ModelMetadata.DisplayName %>:
</label>
</td>
<td>
<%= Html.TextBox("", Model.ToString("g")) %>
</td>
</tr>

关于asp.net-mvc - ASP.NET MVC 2 编辑器模板中字段的渲染标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697394/

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