我建立的數據表這樣有沒有辦法來設置HideSurroundingHtml值ASP.MVC 2
<% foreach (var person in Model.People)
{
%>
<tr>
<td><%= Html.ActionLink(accessory.Name, "EditPerson") %></td>
<td><%= Html.DisplayFor(c => person.Name) %></td>
<td><%= Html.DisplayFor(c => person.Age) %></td>
<td><%= Html.DisplayFor(c => person.Budget)%></td>
</tr>
<%} %>
我創建模板來覆蓋缺省值以下Brad Wilson's tutorial:
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<script runat="server">
protected override void OnInit(EventArgs e) {
base.OnInit(e);
if (ViewData.ModelMetadata.HideSurroundingHtml) {
TablePlaceholder.Visible = false;
}
else {
Controls.Remove(Data);
DataPlaceholder.Controls.Add(Data);
}
}
</script>
<asp:ContentPlaceHolder runat="server" id="Data" />
<asp:PlaceHolder runat="server" id="TablePlaceholder">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="width: 10em;">
<div class="display-label" style="text-align: right;">
<asp:ContentPlaceHolder runat="server" id="Label">
<%= ViewData.ModelMetadata.GetDisplayName() %>
</asp:ContentPlaceHolder>
</div>
</td>
<td>
<div class="display-field">
<asp:PlaceHolder runat="server" id="DataPlaceholder" />
</div>
</td>
</tr>
</table>
</asp:PlaceHolder>
在渲染表格時,我不想顯示周圍的HTML,但我不知道如何設置HideSurroundingHtml值?
我喜歡這個解決方案。 – adriaanp 2011-09-30 11:22:02
謝謝,我仍然不會爲所有你需要的if語句變得笨重,但我認爲這是一個非常簡單的方法。 – 2011-09-30 13:45:10
請注意,這種技術創建並訪問'AdditionalValues'字典中的一個條目,並且實際上並沒有在'ModelMetadata'本身中設置'HideSurroundingHtml'標誌;不直觀的是,國旗仍然是虛假的。 – Suncat2000 2018-01-09 15:24:25