0

网址格式为:

http://0.0.0.0:5000/?id=author_name&id2=book_name&id3=123

我试图为它做roate,但它不起作用:

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

方法是:

   public IActionResult Index(string id, string id2, string id3)
   {
        return View();
   }

如何设置传递 3 个参数的正确路径?

4

2 回答 2

2

我很确定在您的情况下您不需要将查询字符串放在路由模板中。它将由 mvc 自动完成。只需使用“正常”路线。

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Main", action = "Index", id = UrlParameter.Optional }
        );

get 中的变量会自动作为参数传递。

   public IActionResult Index(string id, string id2, string id3)
   {
        return View();
   }
于 2019-09-03T15:16:15.370 回答
1

我相信这个问题已经在这里提出并回答了:Routing with Multiple Parameters using ASP.NET MVC

于 2019-09-03T14:45:55.997 回答