我想将我的起始页面设置为/ Members / Index。
当我使用MVC时,我将其配置如下:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Members}/{action=Index}/{id?}");
});
但是现在我正在尝试新的Razor Pages方法,现在会员是文件夹而索引是Razor Page。 如何在文件夹中将此页面设置为起始页?
我可以在根目录中添加索引页面并在那里进行重定向,但我正在寻找更清洁的东西。
答案 0 :(得分:6)
答案 1 :(得分:1)
在Startup.cs的ConfigurationServices函数中添加以下内容
services.AddMvc().AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/Members/Index", "");
});
如果您还有另一个索引页,则可能需要删除或重命名它。
答案 2 :(得分:1)
从ASP.NET Core 2.1开始指定“开始”页面的最简单方法是在cshtml文件中使用@page
指令。 this blog post中对此功能进行了说明,指令官方文档为this section on Razor Page syntax。
例如,将路线指定为“ / ”会使该页面成为默认页面:
@page "/"
@model sample.Pages.startModel
@{
ViewData["Title"] = "Start Page";
}
<h2>Start Here!</h2>
...
答案 3 :(得分:1)
我正在使用这种方式
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.AllowAreas = true;
options.Conventions.AddAreaPageRoute("Home", "/Index", "");
});
我的文件夹结构是:
- Area |_ Home |_ Pages |_ Index.cshtml |_ //other areas
答案 4 :(得分:0)
在AppStart->RouteConfig.cs
处尝试以下代码:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Members", action = "Index"}
);