c# – MVC3路由中的数据令牌名称
作者:互联网
我一直在学习MVC 3,我无法弄清楚路由的一个方面.
如果我有如下路线:
routes.MapRoute("Default", "{controller}/{action}/{ID}");
该路由将每个操作限制为只有一个名称ID的参数!
虽然控制器的名称或此路线的操作没有限制.
当然我可以定义更多路由,但必须有更好的方法来接受数据令牌,例如ListID或FieldID.
例如:我有一个带有两个动作的ListController:
GetListByID(int listID) and GetFieldByID(int fieldID)
在这种情况下,我必须定义两个路由,因为函数的参数名称是不同的.有一个更好的方法吗?谢谢!
解决方法:
不,您的操作可以采用任意数量的参数,只是您的操作中名为“ID”的一个参数将包含{ID}所代表的该位置的网址内的值
如果你在CartController中有这个动作
public ActionResult Add(int ID, int quantity) { /* method body */ }
网址
/cart/add/1234
将调用CartController的Add方法调用1234传递给ID参数,并调零
但
/cart/add/1234?quantity=4
将数量设为4
您也可以拥有复杂的参数
这是一个很好的介绍
http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx
标签:c,asp-net-mvc-3,asp-net-mvc-routing 来源: https://codeday.me/bug/20190531/1188047.html