ASP.NET使用MVC将linq查询结果绑定到HTML.DropDownList()

扎克·M。

我正在尝试通过一个数据库调用构建一个下拉列表。

我的表由一个Id列和一个CompanyName列组成。我需要向用户显示CompanyName,并在选择一个时将页面的Id设置为Id。

我将一个简单的模型放在一起来存储信息:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace Portal.Models
{
    public class CompanyListId
    {
        public int Id { get; set; }
        public string CompanyName { get; set; }
    }

    public class CompanyListIdDBContext : DbContext
    {
        public DbSet<CompanyListId> Contacts { get; set; }
    }
}

但是我在视图中的控制器和剃须刀调用有问题。

我的控制器:

public void CompanyListIdSearch()
        {
            using (var dc = new CompanyListIdDBContext())
            {
                var content = from p in db.Companies
                                select new { p.CoId, p.CompanyName };
            }
        }

视图中的剃刀呼叫:

<div id="partners" class="linen">

                        @{Html.DropDownList("CompanyListIdSearch", new SelectList(Model.CompanyName));}
                    </div>

在视图顶部抓取模型 @model Portal.Models.CompanyListId

因此,在更高层次上,我想做的是拥有一个视图,该视图使用razor标签调用控制器,控制器使用数据更新模型,然后在下拉列表中显示该数据。我是否以错误的方式处理此问题?

我收到此错误:

The model item passed into the dictionary is of type 'Portal.Models.DashboardContents', but this dictionary requires a model item of type 'Portal.Models.CompanyListId'. 
Mattomtom

不完全的。您不能以这种方式调用方法DropDownList

首先,将该项目集合放入您的ViewBag

using (var dc = new CompanyListIdDBContext())
{
    var content = from p in db.Companies
       select new { p.CoId, p.CompanyName };

    ViewBag.CompaniesList = content
        .Select(c => new SelectListItem
        {
            Text = c.CompanyName,
            Value = c.CoId.ToString()
        }).ToList();
}

返回视图之前,请确保在操作结果中调用该函数。

最后,只需使用您的模型属性并切换到DropDownListFor

@Html.DropDownListFor(m => m.Id, ViewBag.CompaniesList);

但是更好的方法是不要使用ViewBag和使用视图模型。像这样:

public class CompanyViewModel
{
    public int Id { get; set; }
    public string CompanyName { get; set; }
    public List<SelectListItem> CompaniesList { get; set; }
}

然后,您的操作方法将类似于:

public ActionResult YourAction()
{
    var model = new CompanyViewModel();

    using (var dc = new CompanyListIdDBContext())
    {
        var content = from p in db.Companies
            select new { p.CoId, p.CompanyName };

        model.CompaniesList = content
            .Select(c => new SelectListItem
            {
                Text = c.CompanyName,
                Value = c.CoId.ToString()
            }).ToList();
    }

    return View(model);
}

然后,您的视图将使用新模型:

@model CompanyViewModel

那么您的下拉列表将是:

@Html.DropDownListFor(m => m.Id, Model.CompaniesList)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LINQ to XML绑定到asp.Net DropDownList

来自分类Dev

LINQ to XML绑定到asp.Net DropDownList

来自分类Dev

ASP.NET MVC将DropDownList和Checkbox绑定到ViewModel

来自分类Dev

如何使用DropDownList绑定到WebGrid剃须刀ASP Net MVC 4中的模型?

来自分类Dev

ASP.NET MVC的层叠DropDownList

来自分类Dev

在ASP.NET MVC中填充DropDownList

来自分类Dev

ASP.NET MVC DropDownList替代

来自分类Dev

ASP.NET MVC的层叠DropDownList

来自分类Dev

ASP.NET MVC DropDownList NullReferenceException

来自分类Dev

从 AJAX (ASP.NET MVC) 填充 DropdownList

来自分类Dev

在 ASP.NET MVC 中填充 DropDownList

来自分类Dev

ADO.Net数据绑定错误到ASP DropDownList

来自分类Dev

数据绑定到asp.net中的dropdownlist?

来自分类Dev

ADO.Net数据绑定到ASP DropDownList的错误

来自分类Dev

使用asp.net mvc将DropDownList中的SelectedValue从View Razor传递到控制器

来自分类Dev

ASP.NET MVC:DropDownList到模型字段

来自分类Dev

如何将json数据绑定到Asp.MVC5中的dropdownlist?

来自分类Dev

Asp.Net设置DropDownList的格式文本

来自分类Dev

DropDownList中的ASP.NET 2 DataValuefield

来自分类Dev

ASP.NET获取DropDownList的值

来自分类Dev

ASP .Net jQuery DropDownList更改事件

来自分类Dev

Asp.net中的DropDownList问题

来自分类Dev

FormView中的ASP.NET DropDownList

来自分类Dev

包含DropDownList的ASP.NET GridView BoundField

来自分类Dev

SelectedItem ASP.NET的dropdownlist属性

来自分类Dev

ASP.NET MVC在编辑时将数据库值检索到DropDownList

来自分类Dev

在ASP.NET中本地化动态绑定的DropDownList

来自分类Dev

在ASP.NET中本地化动态绑定的DropDownList

来自分类Dev

ASP.NET DropDownList 未在 SelectedIndexChanged 上绑定 SQL

Related 相关文章

热门标签

归档