【问题标题】:Asp.Net Core 2.1 - routes.MapRoute Display the URL in Browser?Asp.Net Core 2.1 - routes.MapRoute 在浏览器中显示 URL?
【发布时间】:2019-02-23 05:19:07
【问题描述】:

浏览器有什么方法可以在每种情况下都显示 URL 吗?

在我给定的示例中,它可以按我的意愿工作,但不适用于默认路由,对于默认路由,显示的 URL 仅为例如https://localhost:44383/.

当我点击主页/关于时,显示屏显示正确的https://localhost:44383/Home/About

每当我点击索引时,浏览器只显示https://localhost:44383/ 它应该显示https://localhost:44383/Home/Index....?

希望你能帮忙?

"public void Configure(IApplicationBuilder app, IHostingEnvironment env)"

这是我唯一的路线:

routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

【问题讨论】:

  • 如果您在 HomeController 上方添加 [RoutePrefix("Home")] 属性,它会在您的 URL 中显示 /Home/Index 吗?您可能必须为您的索引和其他每个操作设置 [Route] 属性,例如 [Route("About")] 等。

标签: c# asp.net-core


【解决方案1】:

好的,找到了解决方案 - 有点棘手,但它有效:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();


            app.Use(async (context, next) =>
            {
                if (context.Request.Path == "/")
                {
                    context.Response.Redirect("Home/Index", true);
                }
                await next();
            });

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "Index",
                    template: "{controller=Home}/{action=Index}");
            });
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多