下拉选择值与ADO数据模型和ASP.净MVC4
本文关键字:ASP MVC4 数据模型 ADO 选择 | 更新日期: 2023-09-27 18:14:57
很难将选定的值粘贴到ASP上。. NET MVC页面。
public partial class AdjustedCost
{
public SelectList BrandList { get; set; }
public string Brand { get; set; }
}
在控制器中设置BrandList:
private static SelectList BrandList = new SelectList( new[] { "Brand1","Brand2","Brand3" } );
public ActionResult EditByTextbox(String textBoxEdit)
{
...
AjustedCost xadjcost = db.xAdjCost.First(e => e.InvtId == textBoxEdit);
...
xadjcost.BrandList = BrandList;
return View( "Edit", xadjcost);
}
在Edit视图中:
@Html.DropDownListFor(model => model.Brand, Model.BrandList )
正确吗?下拉部分正在工作,但所选值只是返回列表的顶部,而不是当前实际设置的值。
您需要将selectedValue传递到SelectList()的构造函数中,而不是使用静态变量,因为它与数据库中的当前值没有上下文关系。
因此,我将创建一个方法,在您需要选择的值的上下文中为您提供选择列表,即
private SelectList BrandList(string selectedValue)
{
SelectList selectList = null;
List<SelectListItem> selectListItems = null;
try
{
selectListItems = new List<SelectListItem>();
selectListItems.Add(new SelectListItem { Text = "Brand1", Value = "Brand1" });
selectListItems.Add(new SelectListItem { Text = "Brand2", Value = "Brand2" });
selectListItems.Add(new SelectListItem { Text = "Brand3", Value = "Brand3" });
selectList = new SelectList(selectListItems, "Value", "Text", selectedValue);
}
catch (Exception exception)
{
exception.Log(); // or whatever you do with your exceptions
}
return selectList;
}
因此,在您的操作结果中,此:
xadjcost.BrandList = BrandList;
就变成:
xadjcost.BrandList = BrandList(whateverTheBrandValueFromYourDbIs);