ASP.NET MVC中的静态HTML页面,不使用布局

时间:2017-10-19 12:23:29

标签: c# asp.net asp.net-mvc razor

我有一个使用ASP.NET MVC构建的整个Web应用程序,并且有一个_ViewStart.cshtml页面,用于指定布局。

这适用于我的整个网站。但是,我有一个原型静态HTML页面,我只需要转储到目录中。

我将HTML复制到CSHTML文件中,然后使用控制器将其复制。问题是,当我转到此页面时,它正在使用布局。

如何配置它以便我可以将此页面作为静态的独立内容提供,而不使用_ViewStart的布局?

2 个答案:

答案 0 :(得分:5)

默认情况下,所有视图都将使用~/Views/Shared文件中指定的_Viewstart.cshtml布局。每次执行视图时,都会执行_Viewstart.cshtml内的代码,用于设置视图的布局。

如果您不想执行/包含特定视图的布局,则可以在视图上将布局明确设置为null。将以下代码添加到视图中。

@{
    Layout = null;
}

请记住,即使它是cshtml文件中的静态html,用户也不会/不应该直接访问此视图(就像普通的html页面/ htm页面一样)。必须通过一个返回此cshtml视图的操作方法进行路由。

另一种选择是使用PartialView方法而不是View方法。使用PartialView方法渲染视图时,框架不会运行_ViewStart.cshtml,因此您会得到相同的结果。

public ActionResult About()
{
   return PartialView();
}
当您想要为页面的某些部分呈现标记时,

PartialView非常方便(例如:模态对话框的内容等)

答案 1 :(得分:0)

在静态视图页面中设置layout = null。 喜欢: @{Layout = null;}