MVC传递参数与url除以/

时间:2014-01-25 12:04:43

标签: url parameter-passing asp.net-mvc-5

我有一个关于使用url将参数传递给控制器​​的问题。

基本上想象一下,我必须传递2个值,即id和token,所以如果我执行了folling url

website.com/controller/{id}

然后到我的控制器我得到了id,但我想知道是否可以这样做: website.com/controller/{id}/{token}以便它们都作为参数传递?因为现在它不起作用。

或者也许不是通过斜线而是通过其他方式而不是webiste/contoller?id={id}&token={token}

也许是这样的:website/contoller/{id}&{token}

我希望避免参数namings让它变得更加微妙......

1 个答案:

答案 0 :(得分:0)

您可以使用以下路线模式:

{controller}/{action}/{id}/{token}

您所要做的就是修改路由配置。但请记住,这会自动强制{id}令牌,因为只有路由的最后一个参数才是可选的:

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

现在你的控制器动作可以有两个参数:

public ActionResult Index(string id, string token)
{
    ...
}