【问题标题】:How to set routes in asp.net core application如何在 asp.net core 应用程序中设置路由
【发布时间】:2017-03-06 19:34:41
【问题描述】:

我有 asp.net 核心应用程序。在我的应用程序中,默认路由设置为Home/Index/id

我还有一个控制器名称Document

 public class DocumentController : Controller
 {
        public IActionResult Index(int? id)
        {          
           // id may be null. Do something with id here 
            return View();          
        }

        public IActionResult Detail(int id)
        {
          return View();
        }
 }

在 startp.cs 中我设置了如下路线

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

                routes.MapRoute(
                    name: "document",
                    template: "Document/{action}/{id?}",
                    defaults: new { controller = "Document", action = "Index" });

            });

我可以使用http://localhost:40004/Documenthttp://localhost:40004/Document?id=1234 浏览文档视图

但是我希望以下路线有效
http://localhost:40004/Document/1234
http://localhost:40004/Document?id=1234
http://localhost:40004/Document/Details/1234
http://localhost:40004/Document/Details?id=1234

startup.cs 中的路由配置应该是什么?

【问题讨论】:

  • 您的问题更新与您原来的帖子不同!在有人为您的第一篇帖子发布答案后,您不应该这样做
  • 您想返回所有请求的详细信息视图?
  • 没有。他们是两条不同的路线。 http://localhost:40004/Document/1234 应该返回 Index 视图,http://localhost:40004/Document/Details/1234 应该返回 Detail 视图
  • 查看更新后的答案。

标签: asp.net asp.net-mvc routes asp.net-core asp.net-core-mvc


【解决方案1】:

编辑:根据问题编辑

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

    routes.MapRoute(
        name: "document",
        template: "Document/{id?}",
        defaults: new { controller = "Document", action = "Index" });
});

此路由定义适用于您拥有的所有路由模式

您不需要详细信息 url 的特定路由定义,因为它与默认约定匹配(由默认路由定义注意)。所以它会正常工作

【讨论】:

  • Document/1234Document/Details/4444 两条路线都应该工作
猜你喜欢
  • 2021-02-02
  • 1970-01-01
  • 2021-06-10
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 2018-05-16
相关资源
最近更新 更多