Şaf*_*Gür 5 asp.net-core-mvc asp.net-core
在MVC 5中,我可以为"Views/Web.Config"中的所有视图设置默认基类和使用:
<system.web.webPages.razor>
<pages pageBaseType="SomeCustomPageClass">
<namespaces>
<add namespace="SomeNamespace" />
Run Code Online (Sandbox Code Playgroud)
我还可以在"_ViewStart.cshtml"中为所有视图设置默认布局:
@{ Layout = "~/Views/Shared/SomeCustomLayout.cshtml"; }
Run Code Online (Sandbox Code Playgroud)
我怎样才能在MVC 6中做到这些?
正如CTP3 中的 github 问题中所报告的,无法通过配置来执行此操作。不过,您可以将默认的 MvcRazorHost 替换为自定义的 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...
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,您无法通过这种方法获得智能感知,因为编辑器始终使用原始的 MvcRazorHost 类。
在alpha4vNext 中,您所要求的所有内容(通过 @inherits 指令的页面基本类型、使用、布局)都将通过此处的_ViewStart.cshtml讨论得到支持。
| 归档时间: |
|
| 查看次数: |
1824 次 |
| 最近记录: |