estoy construyendo una tabla de datos como éstehay una manera para establecer el valor HideSurroundingHtml en 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>
<%} %>
He creado plantillas para anular los valores predeterminados siguientes 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>
al representar la tabla no quiero para mostrar el código HTML que rodea, pero no tienen ni idea de cómo establecer el valor HideSurroundingHtml?
Me gusta esta solución. – adriaanp
Gracias, todavía no estoy loco por lo torpe que resulta el HTML con todas las declaraciones 'if' que necesitaría, pero creo que es una forma bastante directa de hacerlo. –
Tenga en cuenta que esta técnica crea y accede a una entrada en el diccionario 'AdditionalValues' y en realidad no establece el indicador' HideSurroundingHtml' en 'ModelMetadata'; Intuitivamente, la bandera sigue siendo falsa. – Suncat2000