c# - 在 MVC View 中为 HTML DropDownList 创建标签和值

标签 c# html asp.net-mvc c#-4.0 razor

我有以下内容,将“IT”和“HR”作为模型中的值发布。我希望 IT 和 HR 作为标签,0 和 1 作为 Controller 的值。

@Html.DropDownList("DepartmentId", new SelectList(new[] { "IT", "HR" }))

当我获得 View 时,如何在下拉列表中预选值与模型中部门 ID 中的匹配值。因此,如果一个项目的 Id 为 HR,则下拉列表应该已经选择了 HR,然后一个人可以将其更改为 IT,并且可以保存该选项。

有什么帮助吗?? 请注意,我不想更改我的模型。

回答 非常感谢 Terry Nederveld 给出了这个答案:

 @Html.DropDownList("DepartmentId", new SelectList(new[] { new KeyValuePair<string, int>("IT", 1), new KeyValuePair<string, int>("HR", 2) }, "Value", "Key", (Model.ServiceItem.DepartmentId.Equals(1) ? 1 : 2)))

最佳答案

假设您使用的是 MVC3/4,最简单的方法是向您的模型添加“部门”属性。然后你可以在你的 View 中这样做:

@Html.DropDownListFor(m => m.Department.DepartmentId, Model.Departments) 

你的模型看起来像这样:

public class ViewModel
{
    public List<SelectListItem> Departments
    {
        get;
        private set;
    }

    public Department Department { get; set; }


    public ViewModel()
    {
        Departments = new List<SelectListItem>();
        //Assume you'll be getting the list from db here?
        Departments .Add(new SelectListItem { Text = "HR", Value = "IdValueHere" });
        Departments .Add(new SelectListItem { Text = "IT", Value = "IdValueHere" });
    }
}

这负责选择正确的项目。

关于c# - 在 MVC View 中为 HTML DropDownList 创建标签和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604471/

相关文章:

c# - .net 在 Web 服务调用中使用客户端证书的示例?

C# 使用私有(private) double 函数来计算距离

javascript - 如何使用javascript在html中获取元素背景图像

c# - 访问在 HttpActionContext 中作为 POST 发送的查询字符串变量

c# - 选择参数中的默认值为 DateTime.Now

c# - Convert.ToDateTime ,任何描述月份和年份字段 C# 的方法?

c# - 更新到新的 csproj 格式后无法打开 Windows 窗体设计器

html - 为什么我的控件没有分成每行 3 个控件?

html - ASP 和外部 CSS

c# - 如何对使用缓存的服务进行单元测试?