我有一个使用ASP.NET MVC构建的整个Web应用程序,并且有一个_ViewStart.cshtml
页面,用于指定布局。
这适用于我的整个网站。但是,我有一个原型静态HTML页面,我只需要转储到目录中。
我将HTML复制到CSHTML文件中,然后使用控制器将其复制。问题是,当我转到此页面时,它正在使用布局。
如何配置它以便我可以将此页面作为静态的独立内容提供,而不使用_ViewStart
的布局?
答案 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;}