Ich habe mich gefragt, was, wenn es möglich ist, der beste Weg ist, einen Teil mit der neuen Razor View Engine zu rendern. Ich verstehe, dass dies zu diesem Zeitpunkt noch nicht vollständig abgeschlossen war
Im Moment verwende ich RenderPage, um das Benutzersteuerelement zu rendern:
@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
Die Seite, die RenderPage aufruft, verwendet eine Layoutseite (Masterseite) mit drei definierten Abschnitten: TitleContent, HeadContent und Maincontent. Wenn ich versuche, mein Gebietsschemasteuerelement von dieser Seite aus zu rendern, werden diese Abschnitte anscheinend ebenfalls benötigt - sie sollten nur auf der aufrufenden Seite erforderlich sein und vorhanden sein. Ich erhalte die folgende Meldung, unabhängig davon, ob ich die Abschnitte in meine Teilansicht einbeziehe oder nicht (natürlich möchte ich diese Abschnitte nicht einschließen, aber es schien ein interessanter Debugging-Punkt zu sein ...).
Die folgenden Abschnitte wurden definiert, aber nicht auf der Layoutseite '~ / Views / Shared / LocaleUserControl.cshtml' gerendert: TitleContent; Hauptinhalt; Hauptinhalt
Meine Teilansicht lautet wie folgt (angepasst über den folgenden 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>