我是 MVC 的初学者,正在尝试DropDownListFor
用值填充标签。
以下是我现在发现的内容,对我构建代码有所帮助:
http://forums.asp.net/t/1705047.aspx/1
所以在我的控制器中现在有 2 个类,主类(ObjController : Controller)
和我按照上面的例子组成的另一个类。
另一个类如下所示:
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,我可以相应地对待它。
我在.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" (...)
我很困惑,我不确定我现在在做什么,以及如何做。任何人都可以帮我解释什么是错的,和/或如何纠正它?
非常感谢!