Me preguntaba cuál, si es posible, es la mejor manera de renderizar un parcial usando el nuevo motor de vista de afeitar. Entiendo que esto es algo que no se terminó por completo cuando
En este momento estoy usando RenderPage para representar el control de usuario:
@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
La página que llama a RenderPage utiliza una página de diseño (maestra) con tres secciones definidas: TitleContent, HeadContent y Maincontent. Cuando intento representar mi control de configuración regional desde esta página, parece que estas secciones también son necesarias; solo deberían ser necesarias en la página de llamada y están presentes. Recibo el siguiente mensaje, independientemente de si incluyo o no las secciones en mi vista parcial (obviamente no quiero incluir estas secciones pero me pareció un punto de depuración interesante ...).
Las siguientes secciones se han definido pero no se han representado en la página de diseño '~ / Views / Shared / LocaleUserControl.cshtml': TitleContent; HeadContent; Contenido principal
Mi vista parcial es la siguiente (adaptada del siguiente enlace ):
@inherits System.Web.Mvc.WebViewPage<LocaleBaseModel>
@using System.Web.UI;
<p>
@Html.LabelFor(model => Model.CountryName)
<br />
@Html.DropDownListFor(model => Model.CountryName,null, string.Empty, new { @class = "text", accesskey="u"})
</p>
<p>
@Html.LabelFor(model => Model.StateProvince)
<br />
@Html.DropDownListFor(model => Model.StateProvince, null, string.Empty, new { @class = "text", accesskey="t" })
</p>
<script type="text/javascript">
$(function () {
var countries = $("#CountryName");
var statesprovinces = $("#StateProvince");
countries.change(function () {
statesprovinces.find('option').remove();
var url = '@Url.Action("GetStatesProvinces", "Base")';
$.getJSON(url, { countryId: countries.val() }, function (data) {
$(data).each(function () {
$("<option value=" + this.ID + ">" + this.Name + "</option>").appendTo(statesprovinces);
});
});
});
});
</script>