2012-02-08 27 views
23

でHtml.EditorForを使用してIDを設定することができます。は、どのように私は次のようにフィールドIDを設定しようとしていますMVC3

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 

が、これには、次のと、私のidが設定されていないようだ、その結果:

<input type="text" value="334" name="item.Order" id="item_Order" class="text-box single-line"> 

誰かが私が間違っていることを知っていますか?私はEditorForのための許容フォーマットをチェックし、例をGoogleで見たが、私は必要なものに合ったものは見えなかった。

+0

'@ id ='の前に '@ id'を追加してください。 – Hadas

+0

IDはC#のキーワードではないので、@を使用する必要はありません。@class – Jaap

答えて

30

あなたは、HTMLが

+0

などのキーワードでのみ必要です。これはうまくいった。今、私は違いがHtml.EditorForとHtml.TextBoxForの間にあるのだろうかと思っています。 EditorForがテンプレートを使用する違いはありますか? –

+1

はい、EditorForはカスタムタイプ/テンプレートです。 – dohaivu

+21

元の質問はどうですか? EditorForを使いたい/必要がある場合 - どのようにIDを設定するのですか? – JonK

2

強く型付けされたヘルパーを使用しているときにID属性を上書きできるかどうかはわかりません。これがデフォルト値としてIDと第二として、最初のパラメータを使用します

@Html.Editor(string.Format("Order_{0}", Model.Row), Model.Order) 

:しかし、あなたは他の非モデルタイプを使用することができます。

3

があなたのx.Orderのためのエディタのテンプレートを作成しようとした属性がないため、表示データの

@Html.TextBoxFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 

@Html.EditorForの2番目のパラメータがあるに変更する必要がありますか?

は、エディタのテンプレートでこれを持っている:

<input type="text" id="@ViewData["id"]"> 

とあなたのビューページでこれを使用します。

@Html.EditorFor(x => x.Order, new { id = string.Format("Order_{0}", Model.Row) }) 
13
@Html.EditorFor(x => x.Order, null, string.Format("Order_{0}", Model.Row)) 
+5

これは、それを変更するのではなく、実際に尋ねられた質問に答えるために受け入れられる回答でなければなりません。 – ChrisFox

3

私はこの質問はかなり古いですけど、私は必要なすべてを行うには次のとおりでした:

@Html.EditorFor(modelItem => item.EndDate, 
       new { htmlAttributes = new { @class = "form-control", @id = @endID } }) 

あなたが望む/必要とするクラスやIDを与えることができます。私は、この私のページでは、以前にもアイテムごとに異なるIDを作成することがあります。

string endID = "end-" + @item.ID; 

うまくいけば、これは将来的に誰かを助けます。

関連する問題