C# 在ASP.NET MVC中构建多视图布局的首选方法?
我现在想知道使用ASP.NET MVC构建多视图布局的首选方法 例如,在基于角度的SPA中,将不同视图加载到布局非常简单:C# 在ASP.NET MVC中构建多视图布局的首选方法?,c#,asp.net,asp.net-mvc,angularjs,razor,C#,Asp.net,Asp.net Mvc,Angularjs,Razor,我现在想知道使用ASP.NET MVC构建多视图布局的首选方法 例如,在基于角度的SPA中,将不同视图加载到布局非常简单: <div ui-view="header"></div> <div ui-view="content"></div> .state("home", { views: { "header": { templateUrl: "app/_header.html" } ... .州(“家”{ 观点:{ “
<div ui-view="header"></div>
<div ui-view="content"></div>
.state("home", {
views: {
"header": { templateUrl: "app/_header.html" }
...
.州(“家”{
观点:{
“header”:{templateUrl:“app/_header.html”}
...
然而,在MVC中,似乎有多种方法可以实现某些目标,但我对“方法”最初的目的非常困惑
- @Html.RenderPartial()-呈现父级定义的“部分”
- @Html.Partial()-似乎与上面相同
- @RenderPage()-呈现由父级定义的“页面”
- @RenderSection()-按id呈现“section”,由“body view”定义的节
对于常见的“页眉、正文、页脚、导航”布局,首选的(或正确的)方法是什么?或者这只是个人偏好的问题?在您的场景中,我会选择
@Html.Partial
以防您需要在SPA中操纵Html(因为您可以将其分配给变量)
对于公共元素,使用RenderPartial
,这可以稍微快一点(尽管没有什么好写的)
以下是解释:
Html.RenderPartial
将视图直接呈现到响应流,类似于服务器为普通网页提供服务的方式
Html.Partial
将视图呈现为字符串,如果要将结果指定给变量并对其进行操作,请使用此选项
渲染图
与渲染部分相同,但允许您在需要时指定视图的路径
渲染
通常在布局中用于定义将包含在子页面中的部分,如果希望在子视图中无法指定的head
标记中包含脚本/样式,则此选项尤其有用
还有:
渲染
这需要控制器和操作,并将呈现该操作的结果,如果所述视图需要不同的模型,并且填充该模型的数据存储在公共函数/库中,则该操作非常有用。下面只需添加一个建议以回答问题-如果您有一个MVC项目,您可以查看
/Views/Shared
文件夹并检查cafold\u Layout.cshtml
文件。我认为这将为您提供一个起点。根据您的目标,您还可以查看-link相对“旧”,但仍然很好/快速阅读.Hth。