Tôi đã tự hỏi, nếu có thể, đâu là cách tốt nhất để hiển thị một phần bằng cách sử dụng công cụ chế độ xem dao cạo mới. Tôi hiểu rằng đây là một cái gì đó chưa hoàn thành vào thời điểm đó
Ngay bây giờ tôi đang sử dụng RenderPage để hiển thị điều khiển của người dùng:
@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)
Trang gọi RenderPage sử dụng một trang bố cục (chính) với ba phần được xác định: TitleContent, HeadContent và Maincontent. Khi tôi cố gắng hiển thị điều khiển ngôn ngữ của mình từ trang này, có vẻ như các phần này cũng là bắt buộc - chúng chỉ được yêu cầu trong trang gọi và hiện có. Tôi nhận được thông báo sau, bất kể tôi có đưa các phần vào chế độ xem một phần của mình hay không (rõ ràng là tôi không muốn đưa các phần này vào nhưng nó có vẻ như là một điểm gỡ lỗi thú vị ...).
Các phần sau đã được xác định nhưng chưa được hiển thị trên trang bố cục '~ / Views / Shared / LocaleUserControl.cshtml': TitleContent; Nội dung đầu; Nội dung chính
Quan điểm một phần của tôi như sau (phỏng theo liên kết sau ):
@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>