0

v.ID がモデルの整数プロパティである場合、これを行う方法を理解するのを手伝ってくれる人はいますか?

ViewBag.VendorID = new SelectList(db.Vendors.Select(v => new SelectListItem
{
    Value = v.ID,
    Text = string.Format("{0} {1} {2}", v.Title, v.Firstname, v.Secondname)
}), "Text", "Value");

return View();

モデルのいくつかのプロパティをドロップダウン リストのテキストに結合しようとしています。これはコンパイル時エラーを示していますが、それを次のように変更すると

ViewBag.VendorID = new SelectList(db.Vendors.Select(v => new SelectListItem
{
    Value = v.ID.ToString(),
    Text = string.Format("{0} {1} {2}", v.Title, v.Firstname, v.Secondname)
}), "Text", "Value");

次に、私の見解からこの行

@Html.DropDownList("VendorID", (SelectList)ViewBag.VendorID)

実行時エラーが発生します。

LINQ to Entities はメソッド 'System.String ToString()' メソッドを認識せず、このメソッドはストア式に変換できません。

この一見単純なタスクをどのように解決できるかについての考え

皆さんありがとう。

ジェイソン。

4

1 に答える 1

3

string.FormatLinq-to-SQL で直接使用することはできません。最初にリストを列挙する必要があります。

ViewBag.VendorID = db.Vendors.ToList().Select(v => new SelectListItem
{
    Value = v.ID,
    Text = string.Format("{0} {1} {2}", v.Title, v.Firstname, v.Secondname)
});

return View();

上記の追加に注意してください.ToList()SelectListコンストラクターも削除しました。これは、自分で生成している既にDropDownList受け入れているものです。IEnumerable<SelectListItem>

于 2013-09-23T09:37:35.390 に答える