HTML.DropDownListFor を使用してタグの「値」属性を動的に生成しようとしていますが、問題が発生しています。forループをハードコーディングして生のHTMLを挿入することだけを考えていますが、これを行う簡単な方法があると確信しています(?)
私はビューモデルを持っています:
public class DSDCustomerViewModel
{
public IEnumerable<dsd_l_chain> chainBuild { get; set; }
public string Id_dsd { get; set; }
public string Owner { get; set; }
public IEnumerable<string> WFCategory { get; set; }
public IEnumerable<string> TransactionType { get; set; }
[etc etc etc]
chainBuild プロパティは、次のようにビューの拡張メソッドを使用して入力するデータベース (EF を使用) から取得されます。
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<table>
<tbody>
[etc etc]
<td colspan="1" rowspan="1">
Chain Name
</td>
<td colspan="1" style="vertical-align: top;">
@Html.DropDownListFor(model => model.cc_chainName, new SelectList(Model.cc_chainName), "Select ...")
</td>
<td rowspan="1" colspan="2" style="vertical-align: top;">
@Html.ValidationMessageFor(model => model.cc_chainName)
</td>
[etc etc]
cc_chainName EF オブジェクトには、属性「Chain_Desc」、「Chain」、「Chain_Group」、および「ID」があります。
生成された HTML は次のとおりです。
<select id="cc_chainName" name="cc_chainName"><option value="">Select ...</option>
<option>1ST STOP</option>
<option>3 RIVERS ICE CREAM SPCLTS</option>
<option>3RIVERS SALES TO NON-NAP CUSTS</option>
変更方法:
@Html.DropDownListFor(model => model.cc_chainName, new SelectList(Model.cc_chainName), "Select ...")
...生成された HTML コードがタグの「値」属性を cc_chainName.ID に設定するように? 生成された HTML は次のようになります。
<select id="cc_chainName" name="cc_chainName"><option value="">Select ...</option>
<option value="1">1ST STOP</option>
<option value="2">3 RIVERS ICE CREAM SPCLTS</option>
<option value="3">3RIVERS SALES TO NON-NAP CUSTS</option>
「値」タグには cc_chainName モデルの ID が含まれていることに注意してください
ありがとう!