私は MVC の初心者で、DropDownListFor
タグに値を入力しようとしています。
これが私が今見つけたもので、コードを構築するのに少し役立ちました:
http://forums.asp.net/t/1705047.aspx/1
したがって、私のコントローラーには、メインクラス(ObjController : Controller)
と上記の例に従って作成した別のクラスの2つのクラスがあります。
他のクラスは次のようになります。
public class ItemCostViewModel
{
public int Id { get; set; }
[Required]
[Display(Name = "Item Cost :")]
public string ItemCostCode { get; set; }
public IEnumerable<ItemCostViewModel> GetItemCosts()
{
return new List<ItemCostViewModel>
{
new ItemCostViewModel() {Id = 1, ItemCostCode = "One"},
new ItemCostViewModel() {Id = 2, ItemCostCode = "Two"},
new ItemCostViewModel() {Id = 3, ItemCostCode = "Three"},
new ItemCostViewModel() {Id = 4, ItemCostCode = "Four"},
new ItemCostViewModel() {Id = 5, ItemCostCode = "Five"},
new ItemCostViewModel() {Id = 6, ItemCostCode = "Six"}
};
}
}
したがって、ここでの目標は、DropDownListFor
「One」を示す値を a に入力することですが、そこからコントローラのコードで ID を参照できます。ただし、ユーザーが「1」を選択すると、整数値1が得られ、それに応じて処理できるということです。
.cshtlmビューで次のコード行を試しました。
@Html.DropDownListFor(m => m.ItemCostCode , new SelectList(new Project1.Controllers.ItemCostViewModel().GetItemCosts(), "Id", "ItemCostCode"))
しかし、悲しいことItemCostCode
に、 がコントローラーに配置されていないため、クラッシュが発生します。
Compiler Error Message: CS1061:'System.Collections.Generic.IEnumerable<Project1.Models.ObjectInfo>' does not containt a definition for "ItemCostCode" (...)
私は混乱していて、自分が今何をしているのか、どのようにしているのかわかりません。誰かが私を助けて、何が間違っているのか、および/またはそれを修正する方法を説明できますか?
どうもありがとう!