Bind的通用操作结果

时间:2012-04-04 13:29:04

标签: asp.net-mvc-3 generics

是否可以使用签名为:

的ActionResult
[HttpPost]
public ActionResult SomeAction<T>([Bind(Prefix = typeof(T).Name)] T data)
{
  MapAndUpdateModel<T>(data);
  return Content(Boolean.TrueString);
}

我似乎无法使用typeof(T).Name

问候。

1 个答案:

答案 0 :(得分:0)

属性参数必须是类型或编译时常量。您不能调用方法(Name属性getter)来为属性提供值。

不幸的是,BindAttribute被长期硬编码的调用链中的MVC内部消耗,没有简单的扩展钩子。如果你想添加一个允许推理前缀的类似属性,这是可能的,但是你只需要替换ControllerActionInvoker来改变参数绑定行为。