我有一套标准的路由,用于控制器,例如{controller} / {action} / {clientId} / {id}。所有控制器都使用这些值中的每一个,但每个控制器可以在不同的上下文中使用{id}。
例如,LabController上的{id}可能是“labId”,MembershipController上的{id}可能是“membershipId”等。而不是在每个控制器上的每个操作方法中使用“id”,我会喜欢传入“labId”和“membershipId”作为各自控制器中操作的参数。
我可以为每一个动作使用[Bind(Prefix =“id”)],但我希望有一种方法可以在控制器级别控制它。我也试图避免类似路径的多条(几乎相同)路线。感谢。
编辑:澄清一下,我正试图将这些参数绑定到我的行为参数上。如:
public ActionResult GetLab(int labId)
或
public ActionResult GetMembership(int membershipId)
所有使用相同的路线 - 只需将{id}部分绑定为别名,在这些情况下为labId和membershipId,而不必每次都使用[Bind]。
答案 0 :(得分:0)
您根本不需要将参数名称绑定到路径。请记住,通用" id"参数名称只是传入值的占位符。所以你的路线会变成:
Lab/SomeAction/1
和
Membership/SomeAction/1
在这种情况下,它并不关心参数名称。您在查询字符串参数而不是路由参数方面考虑的更多。