使用_viewstart.cshtml和部分Razor视图的正确方法?

波特曼

我正在使用_viewstart.cshtml自动为我的视图分配相同的Razor布局

这是我的Views文件夹根目录中的一个简单的死文件,如下所示:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

这比将@Layout指令添加到每个单个视图要干得多。

但是,这给Razor局部视图带来了问题,因为它们运行_viewstart.cshtml的内容,因此错误地为自己分配了布局,这使它们不再是局部的。

这是一个假设的项目,显示_viewstart.cshtml文件,共享的_layout.shtml文件和局部视图(“ AnonBar.cshtml”)。

示例项目结构

当前,我要解决的方法是在每个局部视图中添加以下行:

@{
    Layout = "";
}

在Razor中将视图表示为局部视图似乎是错误的方法。(请注意,与Web窗体视图引擎不同,部分视图的文件扩展名相同。)

我考虑过的其他选择却更为糟糕:

  • 将所有部分视图放入一个公共文件夹,以便它们可以共享一个公共_viewstart.cshtml。这违反了视图与其控制器位于同一文件夹中的约定。
  • 不使用局部视图。

这是Razor视图引擎团队还在充实的东西吗,还是我缺少基本概念?

马辛

如果您是return PartialView()从您的控制器(而不是return View()那里来的_viewstart.cshtml则将不会执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

似乎未从视图中读取ViewStart.cshtml

向_ViewStart.cshtml添加逻辑

Accès à DBContext dans _ViewStart.cshtml

有没有一种方法可以在Razor视图cshtml中使用Windows Form表?

在_ViewStart.cshtml中定义全局变量

_ViewStart.cshtml布局文件在哪里以及如何链接?

如何使用 Class/IViewComponentResult 返回正确的布局部分视图,而不是使用 Class/Method/~/view/shared/_pg.cshtml .Net Core 获取路由

如何在Razor和Layout.cshtml中使用Gulp

ViewStart和Layout-有什么区别?

使用部分视图MVC 4从父窗体提交数据的正确方法是什么?

如何在Razor / CSHTML项目中正确使用jQuery.get()?

'值不能为空。参数名称:VirtualPath on ViewStart.cshtml'

DRF:正确使用序列化程序和视图集的理论方法

如何使用Razor在主视图viewmodel中保存部分视图viewmodel项目?

如何通过Ajax Begin表单正确使用部分视图

正确使用AngularJS中的视图和子视图

具有自定义布局和ViewStart的MVC登录页面

正确使用Vuex和Vuelidation的正确方法

在Razor MVC 4中使用Lambda的正确方法

使用Razor View Engine从局部视图ASP.NET MVC 3将内容注入特定部分

C#MVC 5 Razor:使用Ajax更新部分视图失败

使用MVC部分视图和history.js

当在视图引擎中指定位置时,为什么在viewstart文件中需要布局的完整路径?

如何使用此代码正确获取网址和视图

SwiftUI-正确使用导航视图和图纸

使用FlightPHP Framework视图和布局无法正确呈现

如何正确使用嵌套状态和视图?

使用 MVC 从脚本和/或 Razor 模型视图中显示和隐藏元素

定义和使用部分绑定函数的方法