pat*_*dge 5 asp.net-mvc asp.net-mvc-2
如果没有覆盖ViewData.TemplateInfo.HtmlFieldPrefix空字符串,是否有办法防止前缀出现在嵌套的强类型EditorFor或DisplayFor帮助程序调用上?
这是我迄今为止工作的丑陋标记/代码:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.Web.Mvc.SelectList>" %>
<% ViewData.TemplateInfo.HtmlFieldPrefix = ""; %>
<%=Html.DropDownList("sort", Model)%>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过*允许指定的重载,htmlFieldName但只改变了立即级别.如果我在该调用点有一个前缀,我只需更改附加到前缀的内容.
我可以手工编写模板标记,但是对于一个SelectList对象这样做似乎我最终会通过一次调整来复制MVC源,因为它涉及对象数据绑定逻辑.
如果您的视图模型上有一个属性,那么您可以在其上放置一个 DataAnnontation 属性,而不是直接在模型上执行下拉列表。
public class MyModel
{
[Display(Name="Your Favorite Choices")]
public string[] Choices {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中
<%= Html.LableFor(m => m.Choices) %><br />
<%=Html.DropDownList("sort", Model.Choices)%>
Run Code Online (Sandbox Code Playgroud)
应该用这个名字。
[希望我没记错。:)]
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |