私はMVCを初めて使い、この問題の良い解決策を探していましたが、作品の種類。私がビューを作成するために行くと、私はdatacontextによって作成されたモデルを選択し、それは私のためのページを自動生成します。これがベストプラクティスでない場合は、これをどうやって別の方法で行うのかについての説明があります。ViewBagなしでMVC + Entity Frameworkを使用してドロップダウンをバインドする
次に、この質問のトピックについて説明します。ドロップダウンメニューを作成する。私はViewBagを使用していますが、これはうまく動作しますが、これはベストプラクティスではないことがわかります。
これは、エンティティによって生成された私のInventoryRecordクラスから直接である:前述したように、私の見解は、いくつかの変更を私のために作成したものエンティティによって移入され
namespace Inventory.DataContext
public partial class InventoryRecord {
public Nullable<int> TypeId { get; set; }
}
:次に
@model Inventory.DataContext.InventoryRecord
<div class="form-group">
<label class="control-label col-md-2" for="TypeId">Type</label>
<div class="col-md-10">
@Html.DropDownList("TypeId", null, "Select...", htmlAttributes: new { @class = "form-control", required = "required" })
@Html.ValidationMessageFor(model => model.TypeId, "", new { @class = "text-danger" })
</div>
</div>
私はこれを持っています:
private InventoryDataSource db = new InventoryDataSource();
ViewBag.TypeId = new SelectList(db.Types.OrderBy(x => x.TypeDesc), "Id", "TypeDesc", type);
これはうまくいきますが、 ViewBagを使用せずにこれを行う方法を知りたい。私はこのページにいくつかの他のドロップダウンメニューを用意しています。MVCの使い方を習得したいと思います。
【のviewmodels(http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp-net-mvc-applications /)。ビューに必要なものはすべて、ビュー・モデルに入れる必要があります。エンティティモデルを渡すことはお勧めしません。 –