3

私のビューモデルにはたくさんの行があります。ユーザーが各行のドロップダウンリストから従業員を選択する必要があります。選択する従業員のリストは、次のように各行で同じです。

@foreach(var item in Model.Rows)     
{
@Html.DropDownListFor(m => item.EmployeeID, Model.EmployeeSelectList, "-- Choose --", new {id = "employee_" +  item.ID })
...
}

モデルは次のようになります。

public class TheViewModel
{
public SelectList EmployeeSelectList {get;set;}
public List<Row> Rows {get;set;}
}

javascript を使用せずに選択した値を設定できるようにするために、代わりに行クラスに SelectList を含める必要がありますか、それとも何か不足していますか?

この質問をする理由はもちろん、クライアントに送信される冗長データの量が多くなるからです。

以下のコメントで指摘されたように、HTML はとにかくサーバーでレンダリングされるため、問題ではありません。

4

2 に答える 2

0

jarvanJiang は、質問の下の会話でわかるように、これを明確にするのを助けてくれました。ありがとうございました!

答えは: 不可能です。

いずれにせよ、すべての HTML がサーバーでレンダリングされるため、問題ではないためです。そして、各行には、クライアントに送信されるときにすべてのタグが含まれています。この時点で、冗長データではなくなり、単なる画面になります。

于 2013-05-14T08:01:27.173 に答える
-1

モデルに追加のプロパティを追加するためにこれを試してください。そこに選択された ddl 値を取得できます。

@Html.DropDownListFor(m => **Model.SelectedValue**, Model.EmployeeSelectList, "-- Choose --", new {id = "employee_" +  item.ID })
...


public class TheViewModel
{
public SelectList EmployeeSelectList {get;set;}
public List<Row> Rows {get;set;}

**public int SelectedValue{get;set;}**
}

ドロップダウンで任意の値を選択すると、値がSelectedValueプロパティに追加されます

コントローラ

int selvalue=yourModelObject.SelectedValue;
于 2013-05-14T06:32:21.013 に答える