编程语言
首页 > 编程语言> > c# – MVC3路由中的数据令牌名称

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