Я пытаюсь создать выпадающий список с одним вызовом базы данных.ASP.NET привязка результатов запроса linq к HTML.DropDownList() с использованием MVC
Моя таблица состоит из столбца Id и столбца CompanyName. Мне нужно отобразить имя_компьютера для пользователя, и когда выбрано одно из них, для идентификатора для 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
Так на высоком уровне, что я пытаюсь do имеет представление, которое вызывает контроллер с тегом бритвы, контроллер обновляет модель данными, а затем эти данные отображаются в раскрывающемся списке. Я подхожу к этому неправильно?
Я получаю эту ошибку:
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'.
Viewbag works. Использование ViewModels - это еще один вариант. [Просмотр моделей] (http://blogs.msdn.com/b/simonince/archive/2010/01/26/view-models-in-asp-net-mvc.aspx) –