Je me demandais quelle était, si cela est possible, la meilleure façon de rendre un partiel en utilisant le nouveau moteur de vue rasoir. Je comprends que c'est quelque chose qui n'était pas complètement terminé à l'époque
En ce moment, j'utilise RenderPage pour rendre le contrôle utilisateur:
@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
La page appelant RenderPage utilise une page de mise en page (maître) avec trois sections définies: TitleContent, HeadContent et Maincontent. Lorsque j'essaye de rendre mon contrôle des paramètres régionaux à partir de cette page, il semble que ces sections sont également requises - elles ne devraient être requises que dans la page d'appel et sont présentes. Je reçois le message suivant, que j'inclue ou non les sections dans ma vue partielle (évidemment je ne veux pas inclure ces sections mais cela m'a semblé être un point de débogage intéressant ...).
Les sections suivantes ont été définies mais n'ont pas été rendues sur la page de mise en page '~ / Views / Shared / LocaleUserControl.cshtml': TitleContent; HeadContent; Contenu principal
Ma vue partielle est la suivante (adaptée du lien suivant ):
@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>