0

我正在尝试创建自定义路由。这是我尝试过但不起作用的方法,我做错了什么?

预期电话:

MyWebsite/Friend/Respond/55/4

routes.MapRoute(
            name : "Friend",
            url : "Friend/Respond/{id}/{state}"
);

// This method is in a Controller Named FriendController
[HttpPost]
public ActionResult Respond(int id, int state)
{
   // Do stuff
}

回答:

routes.MapRoute(
            name : "ExtraParameter",
            url : "{controller}/{action}/{id}/{state}",
            defaults : new { }
);
4

2 回答 2

2

您可以发布一个示例 ActionLink 来触发您的路线吗?

您是否为路线设置了默认值:

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional });

特别是 MapRoute 中的第三个参数。您可能需要将 id 和 state 参数设置为UrlParameter.Optional

于 2013-04-27T17:23:15.787 回答
1

您可以设置 id 和状态 UrlParameter.Optional。

    routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}/{state}", 
    new { controller = "yourcontrollername", action = "youraction", id = UrlParameter.Optional, state = UrlParameter.Optional 
    });
于 2013-04-27T17:29:16.920 回答