asp.net - 插入_ViewStart.cshtml

标签 asp.net asp.net-mvc-3 controller view

是否可以仅将 viewstart 用于特定的 Controller 和 View ? 我只使用了views文件夹中的_Layou.cshtml文件。 现在我将 _ViewStart.cshtml 添加为 View 文件夹中的公共(public) View ,并将 _Layout 移动到共享文件夹。

这是程序结构:

Homecontroller
  public ActionResult Index()
        {
            return View();
        }

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

_Layout.cshtml
{
//design code for Index.chtml
}

根据上面的代码,_Layout 为 homecontroller 渲染。 完成第一行提到的更改后,我将在我使用的每个 Controller 中的 _Layout.cshtml 中获取控件。 我使用了近 6 个 Controller 。 如何在不影响整个代码的情况下进行此更改。 请帮忙。

PS:我需要将_ViewStart引入到程序中,因为我正在将openid与我已经开发的项目集成。

最佳答案

  1. 您可以创建另一个 _ViewStart.cshtml(例如,在 Views/[controller] 子文件夹中)来覆盖根文件夹,例如:

    @{ 布局 = null; }

  2. 您可以简单地使用ViewBag来确定是否使用Layout:

    public ActionResult AnotherAction()
    {
         ....
         ViewBag.NoLayout = true;
    
         return View();
    }
    

    并在您的_ViewStart中:

    @{
    if (ViewBag.NoLayout == null || !ViewBag.NoLayout)
         Layout = "~/Views/_Layout.cshtml";
    }
    

关于asp.net - 插入_ViewStart.cshtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941833/

相关文章:

ASP.NET 将 DbContext 注入(inject) Identity UserManager

javascript - 类似于 JqGrid 中用于表单编辑的 setCell

java - GuiceFXMLLoader : load() method not giving the desired output

ruby-on-rails - Controller 最佳实践 : Multiple Methods or Multiple cases in Show

c# - 使用 LINQ 查询或 GetObjectKey 检索单个 Entity Framework 实体?

c# - 具有完全不相关的静态方法的静态类有什么问题吗?

asp.net-mvc - 在 Razor 中连接字符串

c# - 在 Razor 中使用 lambda 表达式时如何禁用 Visual Studio 的智能感知

asp.net-mvc - 为什么 Ajax.BeginForm 不传递表单值?

model-view-controller - MVC - 除了 set/get 成员之外,哪些方法应该在 Model 类中?