1

エンティティ フレームワークからリストボックス データをバインドしました。そのリストボックスで複数の値を選択しました。ただし、値は起動されません。プロパティのカウントは 0 のみです。以下のコードを使用しています。

public class Sample1  
{  
[Key]  
public int SampleId{ get; set; }  
public string SampleDesc{ get; set; }  
}
public class ExpModel  
{  
public List<Sample1> Sample{ get; set; }  
}
public ActionResult Index()  
{       
ViewData["SampleList"] = new List<Sample1>(entity.samp);  
return View();  
} 
@Html.ListBoxFor(model => model.Sample, new  SelectList(((List<Details.Models.Sample1>)ViewData["SampleList"]), "SampleId", "SampleDesc")) 

どうすればいいですか?私を助けてください...

4

1 に答える 1

0

ListBoxFor ヘルパーを、文字列や整数などの単純/スカラー値のコレクションであるプロパティにバインドする必要があります。

public class Sample1  
{  
    [Key]  
    public int SampleId { get; set; }  
    public string SampleDesc { get; set; }  
}

public class ExpModel  
{  
    public List<int> SelectedSampleIds { get; set; }  
}

その後:

public ActionResult Index()  
{       
    ViewData["SampleList"] = new List<Sample1>(entity.samp);
    return View();  
}

そしてあなたの見解では:

@Html.ListBoxFor(
    model => model.SelectedSampleIds, 
    new SelectList(
        (List<Details.Models.Sample1>)ViewData["SampleList"], 
        "SampleId", 
        "SampleDesc"
    )
)

フォームを送信するSelectedSampleIdsと、リスト ボックスで選択した ID がコレクションに含まれます。

于 2013-08-08T06:15:58.217 に答える