2

アプリケーションのドロップダウンリストに編集と更新を実装しようとしています。ドロップダウンリストの値のリストがモデルから表示されます。しかし、選択した値はドロップダウンリストに表示されません。選択した値は、ドロップダウン リストの値のリストとしても入力されます。

私のモデル:

public string State
public SelectList RegionList { get; set; }
public class Region
{
 public string ID { get; set; }
 public string Name { get; set; }            
}

意見

@foreach (var item in Model.AddressList)
{
    @Html.DropDownListFor(model => item.State, new SelectList(Model.Address.RegionList, "Value", "Text", Model.Address.RegionList.SelectedValue))                                                     
}

注 :
item.State は入力されていますが、値は表示されません
model.address.regionlist が入力されて表示されます

コントローラ

public ActionResult EditAddress(AddressTuple tmodel,int AddressID)
{
    int country;
    string customerID = 1;
    List<AddressModel> amodel = new List<AddressModel>();
    amodel = GetAddressInfo(customerID, AddressID); // returns the selected value for dropdown
    foreach (var item in amodel)
    {
        country = item.CountryId;
    }            
    List<Region> objRegion = new List<Region>();
    objRegion = GetRegionList(id); // returns the list of values for dropdown
    SelectList objlistofregiontobind = new SelectList(objRegion, "ID", "Name", 0);
    atmodel.RegionList = objlistofregiontobind;

    tmodel.Address      = atmodel;
    tmodel.AddressList  = amodel;
    return View(tmodel);
}

ドロップダウンリストで編集する場合、値のリストが表示されます。選択した値が表示されません。私のコードの間違いは何ですか.何か提案があれば.

編集 :

@Html.DropDownListFor(model => model.State, new SelectList(Model.RegionList, "ID", "Name",Model.State))
4

2 に答える 2

2

これ

model => item.State

ドロップダウンの値がモデルから取得されるという事実をhtmlヘルパーから隠しているため、機能しません。これを実装する正しい方法は、次のように置き換えるforeachことforです。

@for (int i=0; i<Model.AddressList.Count; i++)
{
    @Html.DropDownListFor(model => model.AddressList[i].State, new SelectList(Model.Address.RegionList, "Value", "Text", Model.Address.RegionList.SelectedValue))                                     
}
于 2013-08-07T12:18:00.097 に答える
1

AddressListプロパティが次のIList<Something>ような tryであると仮定します。

@for (var i = 0; i < Model.AddressList.Count; i++)
{
    @Html.DropDownListFor(
        model => model.AddressList[i].State, 
        new SelectList(Model.Address.RegionList, "Value", "Text")
    )
}
于 2013-08-07T12:16:01.757 に答える