我有一个名为Registration
的控制器,其中的操作方法如下:
public JsonResult GetReqs(GridSettings gridSettings, int rt)
{
...//whatever
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
所以我添加了一条路线,现在我的RouteConfig.cs
就像这样:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "RegReq",
url: "{Registration}/{GetReqs}/{rt}",
defaults: new { controller = "Registration", action = "GetReqs", rt = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
但是我无法访问rt
参数,并且未调用操作方法GetReqs
(我在其上设置了断点,但没有发生任何事情)。错误在哪里?
修改:我尝试过的链接示例:~/Registration/GetReqs/1
答案 0 :(得分:6)
我认为您需要删除第一条路线中的括号:
routes.MapRoute(
name: "RegReq",
url: "Registration/GetReqs/{rt}",
defaults: new { controller = "Registration", action = "GetReqs",
rt = UrlParameter.Optional }
);
默认路由有{controller}
告诉MVC使用url该部分中的字符串作为控制器名称。你知道控制器,所以你只需要匹配特定的字符串。