在控制器级别使用[Bind(Prefix="xyz")]
本文关键字:quot xyz Prefix 控制器 Bind | 更新日期: 2023-09-27 18:04:49
我有一组标准的路由,用于跨控制器,比如{controller}/{action}/{clientId}/{id}。所有控制器都在使用这些值,但是每个控制器可以在不同的上下文中使用{id}。
例如,LabController上的{id}可能是"labId", MembershipController上的{id}可能是"membershipId",等等。我不想在每个控制器的每个动作方法中使用"id",而是想在各自的控制器中传递"labId"answers"membershipId"作为动作的参数。
我可以对每个动作使用[Bind(Prefix="id")],但我希望有一种方法可以在控制器级别控制它。我也尽量避免使用多条(几乎相同的)路线。谢谢。
编辑:澄清一下,我正试图将这些参数绑定到我的动作上。如:public ActionResult GetLab(int labId)
或
public ActionResult GetMembership(int membershipId)
都使用相同的路由-只是绑定{id}部分作为别名,在这些情况下,labId和membershipId,而不必每次使用[Bind]。
你根本不需要给路由绑定参数名。请记住,泛型"id"参数名称只是传递值的占位符。所以你的路由变成:
Lab/SomeAction/1
和
Membership/SomeAction/1
在这种情况下,它不关心参数名是什么。您考虑的更多的是查询字符串参数而不是路由参数