Tôi đang xây dựng một bảng dữ liệu như thế nàylà có một cách để thiết lập giá trị HideSurroundingHtml trong 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>
<%} %>
tôi đã tạo ra các mẫu để ghi đè giá trị mặc định sau 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>
Khi hiển thị bảng tôi không muốn hiển thị HTML xung quanh, nhưng tôi không có đầu mối làm thế nào để đặt giá trị HideSurroundingHtml?
Tôi thích giải pháp này. – adriaanp
Cảm ơn, tôi vẫn không điên về việc làm thế nào clunky HTML biến ra với tất cả các câu lệnh 'if' bạn cần nhưng tôi nghĩ đó là một cách khá dễ hiểu. –
Lưu ý rằng kỹ thuật này tạo và truy cập một mục trong từ điển 'AdditionalValues' và không thực sự thiết lập cờ' HideSurroundingHtml' trong chính 'ModelMetadata'; vô tình, lá cờ vẫn còn sai. – Suncat2000