下拉选择值与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 )

正确吗?下拉部分正在工作,但所选值只是返回列表的顶部,而不是当前实际设置的值。

下拉选择值与ADO数据模型和ASP.净MVC4

您需要将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);