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 に答える