具有多个参数的MVC属性路由问题

时间:2018-07-24 09:01:57

标签: c# asp.net-mvc asp.net-mvc-routing attributerouting

我在Pro控制器中定义了Details方法,并且我想将此方法映射到多种类型的url。

请检查下面的代码,我尝试使用带有一个参数的另一种方法,并且该方法正在工作,但在这种情况下,它不适用于多个可选参数。

[Route("Vehicles/Details/{no}/{aTab?}/{rs?}/{fp?}")]
[Route("Pro/Details/{no}/{aTab?}/{rs?}/{fp?}")]
[Authorization(SA.PMV, Rights.View)]
public ActionResult Details(string no, string aTab, string rs, bool fp = false)
{
    return View();
}

调试中显示错误:

  

在控制器“ ProController”上找不到公共操作方法“详细信息”。

当我请求以下网址时:

http://www.example.com/Pro/Details?no=sT90Fjts0qI$&aTab=viewdetails&rs=viewdetails&fp=false

1 个答案:

答案 0 :(得分:-1)

定义路由的最佳方法是按照以下方式进入route.config

routes.MapRoute("namesearch","Details/{no}/{aTab}/{rs}/{fp}",
            new { controller = "controllerName", action = " Details", 
                 no = UrlParameter.Optional, aTab = UrlParameter.Optional,
                 rs = UrlParameter.Optional ,fp = UrlParameter.Optional});