मैं सोच रहा था कि क्या हो सकता है, अगर यह नया रेजर व्यू इंजन का उपयोग करके आंशिक रेंडर करने का सबसे अच्छा तरीका है। मैं समझता हूं कि यह कुछ ऐसा है जो समय के अनुसार पूरी तरह से समाप्त नहीं हुआ है
अभी मैं उपयोगकर्ता नियंत्रण प्रदान करने के लिए RenderPage का उपयोग कर रहा हूं:
@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
रेंडरपेज कहे जाने वाले पृष्ठ में परिभाषित तीन खंडों के साथ एक लेआउट (मास्टर) पृष्ठ का उपयोग किया गया है: टाइटलकॉन्टेंट, हेडकंटेंट और मेनकॉन्टेंट। जब मैं इस पृष्ठ से अपने स्थानीय नियंत्रण को प्रस्तुत करने का प्रयास करता हूं तो ऐसा प्रतीत होता है कि इन अनुभागों की भी आवश्यकता है - उन्हें केवल कॉलिंग पृष्ठ में आवश्यक होना चाहिए और मौजूद होना चाहिए। मुझे निम्नलिखित संदेश प्राप्त होते हैं, भले ही मैं अपने आंशिक दृश्य में खंडों को शामिल करूं या नहीं (जाहिर है कि मैं इन वर्गों को शामिल नहीं करना चाहता हूं लेकिन यह एक दिलचस्प डिबगिंग बिंदु की तरह लग रहा था ...)।
निम्नलिखित खंडों को परिभाषित किया गया है, लेकिन लेआउट पेज '~ / Views / साझा / LocaleUserControl.cshtml' पर प्रदान नहीं किया गया है: TitleContent; HeadContent; मुख्य सामग्री
मेरा आंशिक दृश्य निम्नानुसार है (निम्न लिंक से अनुकूलित ):
@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>