asp.net-core - 通过调用以 .cshtml 结尾的页面进行 Razor 路由
问题描述
Razor 将来自“/mypage”的请求路由到文件“mypage.cshtml”但是直接通过“/mypage.cshml”调用网页不会重定向到该文件。相反,它会抛出 404 错误。
是否可以额外配置此行为?这样就可以通过调用 mypage.cshtml 文件
- /我的页面
- /mypage.cshtml
解决方案
这是一个工作演示,如下所示:
1.自定义模型约定:
public class GlobalTemplatePageRouteModelConvention: IPageRouteModelConvention
{
public void Apply(PageRouteModel model)
{
var selectorCount = model.Selectors.Count;
for (var i = 0; i < selectorCount; i++)
{
var selector = model.Selectors[i];
model.Selectors.Add(new SelectorModel
{
AttributeRouteModel = new AttributeRouteModel
{
Order = 1,
Template = selector.AttributeRouteModel.Template+".cshtml",
}
});
}
}
}
2.在Startup.csGlobalTemplatePageRouteModelConvention
中注册:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages().AddRazorPagesOptions(options =>
{
options.Conventions.Add(new GlobalTemplatePageRouteModelConvention());
});
//...
}
结果:
参考:
推荐阅读
- opengl - 是否可以将虚幻引擎 4 的 Vulkan 和 OpenGL 用作 VR 的主要渲染 API?特别是 Varjo 耳机
- slideshow - 将图像链接到幻灯片 Google 幻灯片脚本
- swift - 无法让 SceneView 出现在 ViewController 上
- windows - VLCSharp Unity3D,视频流冻结但音频仍在工作
- dynamic-programming - 模式 9 不可行 GEKKO
- plantuml - 在 PlantUML 中,使用 X 类扩展 Y 语法时如何放置标签?
- javascript - 使用 useReducer 清理 useEffect 警告,
- android - 相机应用程序在 android 模拟器中损坏(虚拟场景中的故障)
- fileoutputstream - 附加到文件流
- docker - 在“docker pull”(JBPM)成功的 repo 上修复 Docker“build from”失败(insufficient_scope:授权失败)