ASP.NET Core Razor页面的路由

时间:2018-12-22 08:18:35

标签: c# razor asp.net-core

我一直在寻找为ASP.NET Core Razor Pages配置默认路由的方法,但仍然没有成功。这是我的默认路由代码。我还能做什么?顺便说一下,这是没有MVC的纯Razor页面。

Item0 ["123", "456", "", "789"]

3 个答案:

答案 0 :(得分:1)

我对问题的理解(来自“评论”部分),您想要执行以下操作:

  1. 将路由添加到自定义剃须刀页面。
  2. 更改登录页面重定向。

您可以执行以下操作将自定义路由添加到剃须刀页面:

//This should be in the very end.
services.AddMvc().AddRazorPagesOptions(options =>
{
   //just to respect Microsoft way, it is better to have Pages folder
   //to contains your folders.
   options.RootDirectory = "/CustomFolder/Pages";
}).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

要更改登录页面,您需要执行以下操作:

  1. 在要授权访问的页面上添加[授权]。或关注Microsoft guides

如果您有用于身份的Microsoft支架式页面,例如:

services.AddDefaultIdentity<IdentityUser>()
   .AddEntityFrameworkStores<ApplicationDbContext>();

您需要用自己的Identity替换它(除非有一种方法可以覆盖默认值)。因为默认设置会将登录路径设置为:/Identity/Account/Login

,在实现自己的身份之后,您可以设置cookie选项。

services.ConfigureApplicationCookie(options => {
   options.LoginPath = "/Bank/Login";
});

这些步骤对我有用。如果您坚持使用默认的身份,则可以添加CookieAuthenticationEvents,然后实现自己的OnRedirectToLogin

编辑:这是一些有用的网站:

  1. Razor pages configuration
  2. Configure ASP.NET Core Identity
  3. Customising-identity

答案 1 :(得分:0)

如果您在此处进行了更改

var about = mHelp.DropDownItems["apProposToolStripMenuItem"]
mHelp.DropDownItems.Remove(about);

您应该知道您需要在控制器中定义哪种操作。通常保留索引或默认值,如果您的要求是每次启动应用程序时重定向到登录名,则可以进行操作。

例如重定向登录操作

 defaults: new { controller = "Bank", action = "Login" });

答案 2 :(得分:0)

ASP.NET Core MVC本身使用路由中间件。如果您不想使用MVC中间件,则可以直接使用它。

public void ConfigureServices(IServiceCollection services)
{
    services.AddRouting();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseRouter(cfg =>
    {
        cfg.MapRoute("default", "segmentA/{segmentB}");
    });
}