Mi chiedevo quale sia, se possibile, il modo migliore per eseguire il rendering di un parziale utilizzando il nuovo motore di visualizzazione razor. Capisco che questo sia qualcosa che non è stato completato completamente nel tempo
In questo momento sto usando RenderPage per eseguire il rendering del controllo utente:
@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
La pagina che chiama RenderPage utilizza una pagina di layout (master) con tre sezioni definite: TitleContent, HeadContent e Maincontent. Quando tento di eseguire il rendering del controllo delle impostazioni locali da questa pagina, sembra che anche queste sezioni siano necessarie: dovrebbero essere richieste solo nella pagina chiamante e sono presenti. Ricevo il seguente messaggio, indipendentemente dal fatto che includa o meno le sezioni nella mia vista parziale (ovviamente non voglio includere queste sezioni ma mi è sembrato un punto interessante per il debug ...).
Le seguenti sezioni sono state definite ma non sono state visualizzate nella pagina di layout "~ / Views / Shared / LocaleUserControl.cshtml": TitleContent; HeadContent; Contenuto principale
La mia visione parziale è la seguente (adattata dal seguente link ):
@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>