3

BindAttribute.Prefixアクション パラメータに適用する場合、カスタム プレフィックスを使用するか、にフォールバックするvalueことを期待します(いずれの場合も、パラメータには番号が割り当てられます)。ただし、代わりにどちらも実行しないため、次のコードは例外をスローします。DefaultModelBinderempty prefixvalue100

パラメーター ディクショナリには、メソッド 'System.Web.Mvc.ActionResult Index(Int32)' の null 非許容型 'System.Int32' のパラメーター 'value' の null エントリが含まれています。

[HttpPost]
public ActionResult Index([Bind(Prefix = "originalPrefix")]int value)
{
    return View();
}

public ActionResult Index()
{
    return View();
}

インデックス.cshtml:

 using (Html.BeginForm())
 {      
       <input id="originalPrefix.value" name="originalPrefix.value" type="text" value="100" />
       <input id="value" name="value" type="text" value="100" />

       <input type="submit" value="submit" />
 }  

a)フォーム データをパラメーターDefaultModelBinderにバインドできないのはなぜですか?value

b) 可能であれば、BindAttribute.PrefixInt32 型のアクション メソッド パラメーターにどのように適用しますか?

ありがとうございました

4

1 に答える 1

2

name属性の値は であってはなり"originalPrefix"ません"originalPrefix.value"。パラメータの value プロパティではなく、パラメータをバインドしようとしています。

于 2013-04-10T18:05:38.740 に答える