c# - mvc 4下拉选择默认值

标签 c# asp.net-mvc asp.net-mvc-4 razor

我想在 policyId = 7 的下拉列表中选择默认值,但它没有选择该值,我做错了什么?

Controller :

var pm = new ManagerClass();
IEnumerable<myClass> po = pm.GetDataFromDb();
IEnumerable<SelectListItem> Policies = new SelectList(po, "PolicyID", "PolicyName", new { PolicyID = 7 });
ViewBag.Policies = Policies;

查看:

@Html.DropDownListFor(m => m.PolicyID, ViewBag.Policies as IEnumerable<SelectListItem>, new { @class = "dropdown-field"})

最佳答案

这是因为它实际上并没有选择SelectList中的值。

首先,为了让它更好,将项目放在 View 模型中以防止转换(这也是更好的做法):

public class MyModel
{
    public int PolicyID { get; set; }
    public List<SelectListItem> Policies { get; set; }
    //rest of your model
}

然后填充它:

var model = new MyModel();
model.Policies = po
    .Select(p => new SelectListItem
    {
        Text = p.PolicyName,
        Value = p.PolicyID.ToString(),
        Selected = p.PolicyID == currentPolicyId //change that to whatever current is
    })
    .ToList();

然后在你看来,做:

@Html.DropDownListFor(m => m.PolicyID, Model.Policies, new { @class = "dropdown-field"})

关于c# - mvc 4下拉选择默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16664907/

相关文章:

c# - 什么位置安装文件 - Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

c# - 原点搜索短语

c# - 从另一个应用程序获取文本

c# - 无法使用模板字段更新我的网格

javascript - ajax post之后mvc url太长

c# - ReadAsMultipartAsync 的异步优势是什么?

c# - Unity List.Add 阻止 Android 上的 Sprite 更新

c# - ASP.NET ObjectDataSource 找不到具有参数的非泛型方法

javascript - Cassette Add Individual Javascript Script Link Reference 内联

javascript - jQuery 表达式未被识别