C# 如何更改或配置查看HTML页面的目录
我已经尝试更新Razor cshtml查看页面路径,但它不起作用 Startup.csC# 如何更改或配置查看HTML页面的目录,c#,asp.net,asp.net-mvc,asp.net-core,razor,C#,Asp.net,Asp.net Mvc,Asp.net Core,Razor,我已经尝试更新Razor cshtml查看页面路径,但它不起作用 Startup.cs public void ConfigureServices(IServiceCollection services) { var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions { EnableQuickPulseMetri
public void ConfigureServices(IServiceCollection services)
{
var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions
{
EnableQuickPulseMetricStream = true
};
services.AddMvc();//.WithRazorPagesRoot("/Home/myapp");
//services.Configure<RazorPagesOptions>(options => options.RootDirectory = "/Home/myapp");
services.AddApplicationInsightsTelemetry(aiOptions);
services.AddCors(option =>
{
option.AddPolicy("AllowSpecificOrigin", policy => policy.WithOrigins("*"));
option.AddPolicy("AllowGetMethod", policy => policy.WithMethods("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"));
});
}
当前视图页面路径
Views/Home/Index.cshtml
Views/Home/AppHome.cshtml
要修改路径视图吗
Views/Home/myapp/Index.cshtml
Views/Home/myapp/AppHome.cshtml
但在服务配置之后就不行了。如何更改查看页面目录
谢谢
ASP.NET框架
要更改视图搜索位置,需要创建一个从RazorViewEngine
派生的新类,并更改以下一个或多个属性的值:
- ViewLocationFormats
- MasterLocationFormats
- PartialViewLocationFormats
ViewLocationFormats
属性,默认值为:
~/Views/{1}/{0}.cshtml,
~/Views/{1}/{0}.vbhtml,
~/Views/Shared/{0}.cshtml,
~/Views/Shared/{0}.vbhtml
以下是与占位符对应的参数值:
- {0}表示视图的名称
- {1} 表示控制器的名称
public class CustomLocationViewEngine : RazorViewEngine
{
public CustomLocationViewEngine()
{
ViewLocationFormats = new string[]
{
"~/Views/{1}/myapp/{0}.cshtml",
"~/Views/{1}/{0}.cshtml"
};
}
}
下一步是使用Global.asax的Application\u Start
方法中的ViewEngines.Engines
集合注册CustomLocationViewEngine
:
protected void Application_Start()
{
for (var i = ViewEngines.Engines.Count - 1; i >= 0; i--)
{
if (ViewEngines.Engines[i] is System.Web.Mvc.RazorViewEngine)
{
// Remove the current Razor view engine
ViewEngines.Engines.RemoveAt(i);
break;
}
}
// Add the new customized view engine
ViewEngines.Engines.Add(new CustomLocationViewEngine());
//…
}
ASP.NET核心3.1
对于MVC Core 3.1,Startup.cs中的ConfigureServices
方法应更新如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.Configure<RazorViewEngineOptions>(o =>
{
o.ViewLocationFormats.Clear();
o.ViewLocationFormats.Add("/Views/{1}/myapp/{0}" + RazorViewEngine.ViewExtension);
o.ViewLocationFormats.Add("/Views/Shared/myapp/{0}" + RazorViewEngine.ViewExtension);
});
}
public void配置服务(IServiceCollection服务)
{
services.AddControllersWithViews();
服务配置(o=>
{
o、 ViewLocationFormats.Clear();
o、 添加(“/Views/{1}/myapp/{0}”+RazorViewEngine.ViewExtension);
o、 添加(“/Views/Shared/myapp/{0}”+RazorViewEngine.ViewExtension);
});
}
有关更多信息,请参见您可以使用功能文件夹,这将允许您自定义视图位置:我有在.NET Framework上运行的无状态ASP.NET核心应用程序。(Web api MVC)…项目中没有.asax
文件…我可以在startup.cs
文件中使用吗?@r08-对于ASP.NET MVC CORE 3.1版本,更新看起来不同。请参阅上面的修复。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.Configure<RazorViewEngineOptions>(o =>
{
o.ViewLocationFormats.Clear();
o.ViewLocationFormats.Add("/Views/{1}/myapp/{0}" + RazorViewEngine.ViewExtension);
o.ViewLocationFormats.Add("/Views/Shared/myapp/{0}" + RazorViewEngine.ViewExtension);
});
}