2016-10-19 3 views
0

を提出フォーム上のテキストボックスのデータ-ID値を取得する:ユーザが車両を選択すると、車両の記述は、テキストボックスの値私は同様に、テキストボックスのセットアップを有する

 @Html.TextBoxFor(m => m.NewVehCode, new {data_id = "" }) 

なると(私はDBに送信したいものである)車両コードはデータ-ID(ない完全なコードが、私はこのような値を設定)は以下のようになる。

 $("#NewVehCode").val(vehDescription); 
     $("#NewVehCode").attr("data-id", vehCode); 

これは、すべてが、その際に事実を除いて、正常に動作します私は提出し、MVCはテキストボックスの値を取得します。

提出する方法はありますか?その値の代わりにそのテキストボックスのデータIDを取得しますか?

私はデータを収集するために.jsを使用していないことに注意してください。フォームは、モデルをコントローラに直接送信するコントローラアクションを呼び出します。

+2

フォームは、成功したコントロールの名前と値のペアのみを送信します。 'data = *'属性値は送信しません。モデルに別のプロパティを追加し、そのプロパティの値を 'vehCode'に設定してください。 –

+0

あなたは車両を「選択」していると言います。代わりにオプションでselect要素を使用していないのですが、そのオプションの値をIDにすることができますか? – mtaanquist

+0

スティーブン、ありがとうございました。あなたのご意見は私が解決策を思いつくのを助けました。 – IHS

答えて

0

ステファン・ミュエッケさんのコメントは、私は、このソリューションをトリガー助け:

私は車両コードに使用する非表示のテキストボックスを追加した、との記述に結合データのない標準のテキストボックスを示してテキストボックスを作りました。

 <input id="newVehInput" readonly="readonly" class="longInput" type="text"> 
     @Html.TextBoxFor(m => m.NewVehCode, new { style = "display: none"}) 

私は問題なく値を使用することができますこの方法は:

 $("#newVehInput").val(vehDescription); 
     $("#NewVehCode").val(vehCode); 

(2日間で答えとしてマークされます)

+0

ではなく、hiddenフィールドを使用する必要があります。 –

0

「データ」プロパティの値を送信する方法はありません。なぜデータプロパティを使用したいのかわかりません(要件であるかどうかは不明です)。しかし、フォーム内に隠れたプロパティを持つことができるので、ユーザーが車を選択したときに、テキストボックスのデータプロパティと共にこの隠し値を更新します。この隠し値はフォームに戻されます。

0

あなたは背中に投稿してHTMLに隠されたテキストボックスを追加します。お使いのモデルでは

を提出:

public string Id {get;set;} 

隠しクラスのビューでレンダリングします

jsを使用してビューでレンダリングします。

$("#vehicleList").on("change",function(){ 
$("#Id").val($vehCode) 
}) 

あなたは、IDの値は、あなたのモデルに

0

を設定する必要があります送信するとあなたはhidden fieldが更新された値を保持することができます。

HTML:

<input type="hidden" id="HiddenVehCode" name="HiddenVehCode" Value="0"/> 

JS

$("#HiddenVehCode").val(vehDescription); 

注:HiddenVehCodeは送信フォームでactionMethodに到達するようにあなたは、モデルがセットアップされている必要があります。何かのように、

public int HiddenVehCode {get;set;} 
関連する問題