0

是否可以有一个带有以下签名的 ActionResult:

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

我好像不能用typeof(T).Name

问候。

4

1 回答 1

0

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

不幸的是,BindAttribute 被长长的硬编码调用链中的 MVC 内部消耗,没有一个微不足道的扩展钩子。如果您想添加一个允许推断前缀的类似属性,这是可能的,但您几乎需要替换 ControllerActionInvoker 只是为了更改参数绑定行为。

于 2012-04-04T13:47:45.867 回答