在控制器级别使用[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]。

在控制器级别使用[Bind(Prefix="xyz")]

你根本不需要给路由绑定参数名。请记住,泛型"id"参数名称只是传递值的占位符。所以你的路由变成:

Lab/SomeAction/1

Membership/SomeAction/1

在这种情况下,它不关心参数名是什么。您考虑的更多的是查询字符串参数而不是路由参数