我有一个关于使用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让它变得更加微妙......
答案 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)
{
...
}