Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET MVC中构建多视图布局的首选方法?_C#_Asp.net_Asp.net Mvc_Angularjs_Razor - Fatal编程技术网

C# 在ASP.NET MVC中构建多视图布局的首选方法?

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" } ... .州(“家”{ 观点:{ “

我现在想知道使用ASP.NET MVC构建多视图布局的首选方法

例如,在基于角度的SPA中,将不同视图加载到布局非常简单:

<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。