gpt4 book ai didi

c# - Razor View 引擎 - 如何添加部分 View

转载 作者:IT王子 更新时间:2023-10-29 03:38:14 27 4
gpt4 key购买 nike

我想知道,如果可能的话,使用新的 razor View 引擎渲染局部 View 的最佳方式是什么。我明白这是当时还没有完全完成的事情

现在我正在使用 RenderPage 来呈现用户控件:

@RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model)

调用 RenderPage 的页面使用布局(母版)页面,其中定义了三个部分:TitleContent、HeadContent 和 Maincontent。当我尝试从此页面呈现我的区域设置控件时,这些部分似乎也是必需的 - 它们应该只在调用页面中需要并且存在。我收到以下消息,无论我是否在部分 View 中包含这些部分(显然我不想包含这些部分,但这似乎是一个有趣的调试点......)。

The following sections have been defined but have not been rendered on the layout page '~/Views/Shared/LocaleUserControl.cshtml': TitleContent; HeadContent; MainContent

我的部分观点如下(改编自以下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>

最佳答案

你的部分看起来很像一个编辑器模板,所以你可以这样包含它(当然假设你的部分放在 ~/views/controllername/EditorTemplates 子文件夹中):

@Html.EditorFor(model => model.SomePropertyOfTypeLocaleBaseModel)

或者如果情况并非如此:

@Html.Partial("nameOfPartial", Model)

关于c# - Razor View 引擎 - 如何添加部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380945/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com