正如CTP3中的这个 github 问题中所报告的,无法通过配置来做到这一点。但是,您可以将默认的 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
讨论的方式得到支持。