我很担心在MVC中制作DropdownList。让我们从一个简单的案例开始。在地址视图中,我有一个City文本框和一个State下拉列表。我的模型Linq to SQL创建的地址表具有以下属性:
Public string City{get;set;}
Public string State{get;set;}
和另一个有状态的表。 在我的控制器中我做了以下方法:
public static SelectList getLang(string index)
{
using (namespace.DB db = new namespace.DB())
{
List<namespace.Model.tbl_State> state= (from S in db.tbl_State orderby L.Name select L).ToList();
SelectList sel = new SelectList(state, "ID", "Name", index);
return sel;
}
}
用于编辑的和actionresult就像:
public ActionResult Edit(int id)
{
using (namespace.DB db = new namespace.DB())
{
namespace.Model.tbl_Address add= db.tbl_Address.Single(T => T.ID == id);
return View(add);
}
}
现在如何将所有这些方法放在一起。我希望在我的视图中显示城市和州的下拉列表中选择了CA ID。任何帮助将不胜感激。
答案 0 :(得分:0)
首先,我将开始阅读有关MVC的一些教程或书籍:
https://stackoverflow.com/questions/240905/best-asp-net-mvc-book
您应该创建视图模型(首先阅读视图模型),它们看起来像:
class AddressEditModel
{
tbl_Address Address;
List<tbl_State> States;
}
然后你必须从Linq到SQL构建这个模型:
public AddressEditModel ConstructAddressEditModel(int addressId)
{
var model = new AddressEditModel();
using (namespace.DB db = new namespace.DB())
{
model.States = state= (from S in db.tbl_State orderby L.Name select s).ToList();
model.Address = db.tbl_Address.Single(T => T.ID == addressId);
}
}
然后你的编辑方法:
public ActionResult Edit(int id)
{
var model = ConstructAddressEditModel(id);
return View(model);
}
然后将您的观点声明为:
System.Web.Mvc.ViewPage<AddressEditModel>
并使用Html.DropDown
在您的视图中使用Model.States
。