gpt4 book ai didi

asp.net-core - 如何为所有 View 设置布局、基类和用途?

转载 作者:行者123 更新时间:2023-12-04 20:06:24 24 4
gpt4 key购买 nike

在 MVC 5 中,我可以为“Views/Web.Config”中的所有 View 设置默认基类和用途:

<system.web.webPages.razor>
<pages pageBaseType="SomeCustomPageClass">
<namespaces>
<add namespace="SomeNamespace" />

我还可以为“_ViewStart.cshtml”中的所有 View 设置默认布局:
@{ Layout = "~/Views/Shared/SomeCustomLayout.cshtml"; }

我怎样才能在 MVC 6 中做到这些?

最佳答案

据报道 in this github issue在 CTP3 中没有办法通过配置来做到这一点。但是,您可以用自定义的替换默认的 MvcRazorHost:

public abstract class MyPage<T> : RazorPage<T>
{/*...*/}

public abstract class MyPage : RazorPage
{/*...*/}

public class MvcMyHost : MvcRazorHost
{
public MvcMyHost() : base(typeof(MyPage).FullName) { }
}

public class Startup
{
public void Configure(IBuilder app)
{
var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();

app.UseServices(services =>
{
services.AddMvc(configuration);
services.AddTransient<IMvcRazorHost, MvcMyHost>();
});
// etc...
}
}

不幸的是,您无法通过这种方法获得智能感知,因为编辑器始终使用原始 MvcRazorHost 类。

alpha4 vNext 中您要求的所有内容(通过@inherits 指令的页面基类型、使用、布局)都将通过 _ViewStart.cshtml 得到支持。如讨论 here .

关于asp.net-core - 如何为所有 View 设置布局、基类和用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com