2011-12-20 3 views

答えて

0

Html.BeginFormを呼び出すと、対応する入力フィールドを生成するときに、TextBoxFor、CheckBoxFor、...などのヘルパーがHTML5 data- *属性を出力するという効果を持つフォームコンテキスト変数が設定されるためです。例えばフォームなしでこれらのヘルパーの1つを使ってみると、入力にはクライアント側の検証で使用されるHTML5のデータ属性がないことがわかります。

手動でフォームのコンテキストを作成することでごまかすことができます:

@{ViewContext.FormContext = new FormContext();} 
<form ....> 
    @Html.EditorFor(x => x.Foo) 
    <button type="submit">OK</button> 
</form> 

でもねえ、なぜあなたは、手動で代わりに適切なURLを生成するの世話をする、対応するヘルパー、メソッドを使用しての形式をハードコーディングする必要があり、エンコーディング、...?

+0

ありがとうございました。私はT4Mvcを試していましたが、BeginFormヘルパで生成された文字列を使用できることがわかりました。 – jaffa

+0

@ダーリン:私はあなたに手動でフォームをハードコードする理由を与えます。 'BeginForm()'は、HTMLの属性をサポートしていません。残念ながら、私はこの場合に大きな解決策を見ません。 –