asp.net-mvc – 在ASP.NET MVC 2中模板化Html.DisplayFor()
|
看来,如果您只使用 Html.DisplayFor(model => model)而没有模板用于Details视图,则生成的标记将如下所示: <div class="display-label">first name</div> <div class="display-field">Dan</div> <div class="display-label">last name</div> <div class="display-field">M</div> <div class="display-label">email</div> <div class="display-field">danm@fakedomain.com</div> 这具有相当程度的灵活性.如果你为display-label和display-field创建CSS类,你可以做很多,但是如果我想把它改成这样的话怎么办? <p> <span class="display-label">first name</span>: <span class="display-field">Dan</span> </p> <p> <span class="display-label">last name</span>: <span class="display-field">M</span> </p> <p> <span class="display-label">email</span>: <span class="display-field">danm@fakedomain.com</span> </p> 请注意,现在属性值对现在并排显示(而不是在单独的行上),并且每个属性后面都有一个冒号. 有没有办法创建一个自定义模板,当详细信息视图是脚手架时,将为每个属性值对重复这些模板? 我不是在谈论模型的特定模板(例如,Person模板)或特定属性的模板(例如,EmailAddress模板).我想要一些让我描述属性 – 值对看起来的东西,然后DispalyFor()应该自动为我的模型或视图模型中的每个属性重复该模板. 解决方法如何覆盖对象模板,例如<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<% if (ViewData.TemplateInfo.TemplateDepth > 3) { %>
<%= ViewData.ModelMetadata.SimpleDisplayText %>
<% } else { %>
<table>
<% foreach (ModelMetadata prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm))) { %>
<% if (prop.HideSurroundingHtml) { %>
<%= Html.Display(prop.PropertyName) %>
<% } else { %>
<tr>
<td>
<div class="display-label" style="text-align: right;">
<%= Html.Label(prop.PropertyName) %>
</div>
</td>
<td>
<div class="display-field">
<%= Html.Display(prop.PropertyName) %>
<%= Html.ValidationMessage(prop.PropertyName,"*") %>
</div>
</td>
</tr>
<% } %>
<% } %>
</table>
<% } %>
见http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC路由和静态数据(即图像,脚本等)
- 设置ASP.NET页面不被缓存(客户端/服务器端取消缓存方法)
- asp.net – 如何在C#2.0中的Web.config中加密用户名和密码
- asp.net – DirectoryServicesCOMException 80072020来自II
- ASP.NET MVC4安全性,身份验证和授权
- asp.net – IIS Web Garden中的Singleton对象
- asp.net-mvc – mvc razor @helper可以返回非编码标签吗?
- asp.net-mvc – ASP.NET MVC视图模型的最佳做法
- asp.net – 手动更新表单认证券:
- asp.net下使用jquery 的ajax+WebService+json 实现无刷新取
- asp.net-mvc – 如何编辑表格数据(ASP MVC)
- Asp.net下使用Jquery Ajax传送和接收DataTable的
- asp.net-mvc-4 – WepApi控制器是否应该返回view
- asp.net-mvc-3 – 将数组传递给RouteValues,并将
- 将搜索框添加到ASP.Net动态数据列表页面
- asp.net – 在渲染到位图之前缩放WPF内容
- asp.net-mvc – RequireHttps导致Amazon Elastic
- ASP.net Substitution 页面缓存而部分不缓存的实
- asp.net-mvc-4 – 全局过滤器MVC 4的执行顺序是什
- asp.net – 将Eval参数从ASPX文件传递给JavaScri
