私はこれを何百回も行ってきましたが、ここで何が起こっているのかわかりません。私はDropDownListFor
そのようにコントローラーに入力する
var mktsegments = from p in db.ChannelMarketSegment
where (p.ChannelCode != "0")
select p;
ViewBag.Pendist = new SelectList(mktsegments, "Pendist", "Pendist");
ビューでは、このドロップダウンリストのデフォルト値を値で設定しようとしていPendist
ます。
編集: Pendist は、クエリをmktsegments
介して取り込まれた各アイテムに存在するフィールドです。Linq
<div class="M-editor-label">
@Html.LabelFor(model => model.Pendist)<span class="req">*</span>
</div>
<div class="M-editor-field">
@Html.DropDownListFor(model => model.Pendist,
(SelectList)ViewBag.Pendist, new { onchange = "ChangeChannel()" })
</div>
ただし、これはリストの最初の値をデフォルト値として設定するだけです。このように3番目のパラメーターとしてmodel => model.Pendist
orを追加しようとするとModel.Pendist
DropDownListFor
@Html.DropDownListFor(model => model.Pendist,
(SelectList)ViewBag.Pendist, model => model.Pendist, new { onchange = "ChangeChannel()" })
次のエラーが表示されます
(の場合model => model.Pendist
)
Cannot convert lambda expression to type 'string' because it is not a delegate type
(の場合Model.Pendist
)
'Model' confilcts with the declaration 'System.Web.Mcv.WebViewPage<TModel>.Model'