【问题标题】:how to select an item in selectlist in view model MVC 4如何在视图模型 MVC 4 的选择列表中选择一个项目
【发布时间】:2013-09-02 06:39:19
【问题描述】:

我是 mvc 4 的新手,但正在取得进步。我对如何在视图模型的选择列表中选择一个项目感到疯狂。 这是我的控制器代码;

ViewBag.DepartmanListesi = new SelectList(VeriTabani.UnvanDepartmanlaris, "UDepId", "Departman");

在我的视图模型中,我列出了一个不同的数据库,但在此列表中,一个字段包含UnvanDepartmanlaris 的 id。而不是显示 id,我想显示 id 的名称。但我尝试过的没有奏效。你能帮帮我吗?

我搜索了很多东西,但其中大部分是关于如何设置下拉列表的。我找不到我的问题的任何答案。

提前谢谢你。我会等待任何回应

【问题讨论】:

  • 我已经检查了这些信息,但我对下拉列表不感兴趣。我想在视图模型中使用选择列表进行查询。
  • 这是一个SelectList 构造函数。 DropDownList 和什么有什么关系?您是在问如何在列表创建之后设置所选项目?
  • 我想我可能会错误地解释我想要做什么的问题。事实上,我想要做的是,视图模型列出了一个数据库,其中一个字段包括不同数据库的 id。我想显示属于另一个数据库的字段的名称,而不是显示 ID。我想这样做我需要一个选择列表。所以这就是我想做的。所以请告诉我我应该以什么方式休闲。

标签: asp.net-mvc asp.net-mvc-4 selectlist


【解决方案1】:

试试这个,

控制器

 public List<CustomerModel> GetCustomerName()
        {
            // Customer DropDown
            using (dataDataContext _context = new dataDataContext())
            {
                return (from c in _context.Customers
                        select new CustomerModel
                        {
                            CustomerId = c.CID,
                            customerName = c.CustomerName
                        }).ToList<CustomerModel>();
            }
        }

  [HttpGet]
        public ActionResult CustomerInfo()
        {

            var List = GetCustomerName();
            ViewBag.CustomerNameID = new SelectList(List, "CustomerId", "customerName");
            return View();
        }

查看

@Html.DropDownList("CustomerId", (SelectList)ViewBag.CustomerNameID, "--Select--")

型号

public class CustomerModel
    {
        public int CustomerId { get; set; }

        public string customerName { get; set; }

        public List<SelectListItem> customerNameList { get; set; }
}

【讨论】:

    【解决方案2】:

    我正在使用以下方法。希望对您有所帮助:

    创建助手类(这里有我所有的选择列表)

    Public static class Helper
    {
    public static List<SelectListItem> GetList()
            {
                var result = new List<SelectListItem>();
                var ctx = new YourContext();
    
                var items = from n in ctx.Clients
                            select new SelectListItem
                            {
                                Text = n.Client.Name,
                                Value = n.ClientID.ToString()
                            };
    
                foreach (var item in items)
                    result.Add(item);
                return result;
            }
    }
    

    比你认为的:

    @Html.DropDownList("GetClients", Helper.GetList())
    

    为我工作。

    【讨论】:

    • 谢谢,我会尽力反馈的
    • 这对我很有帮助。非常感谢我的朋友,非常感谢。
    • @CagdasArslan 如果对您有帮助,请将其标记为答案。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多