Я новый парень в ASP.NET MVC 4. Я хочу заполнить выпадающий список из таблицы базы данных BO, где имя столбца - Id, Code, Name, OrgId
. Я хочу связать два данных Code
& Name
данных DataTextfield и столбца Id
Данные для DataValueField выпадающего списка. Я создал код для этого, которые являются НО ЕГО НЕ ВОЗВРАЩАЕТСЯ DATA FROM TABLE и var BOList
это остается пустым:ASP.NET MVC 4 Хотите заполнить выпадающий список из базы данных
my connectionstring is
<add name="iRegDBContext"
connectionString="Data Source=****;Initial Catalog=iReg;User ID=**;Password=****;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
Мой класс контроллера:
public class iRegController : Controller
{
private iRegDBContext l_oDbBO = new iRegDBContext();
// GET: /iReg/
public ActionResult PopulatejQgrid()
{
var BOList = l_oDbBO
.BO
.ToList()
.Select(d => new SelectListItem
{
Value = d.Id.ToString(),
Text = d.Name + "[ " + d.Code + " ]"
});
ViewBag.BOData = new SelectList(BOList, "Value", "Text");
return View();
}
}
Мой класс Модель:
public class BO
{
public Guid Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
public class iRegDBContext : DbContext
{
public DbSet<BO> BO { get; set; }
}
Мой cshtml класс:
@model MvciReg.Models.BO
@{
ViewBag.Title = "PopulatejQgrid";
}
@using (Html.BeginForm())
{
<fieldset>
BO :
@Html.DropDownList("BOData")
<p>
<input type="submit" value="Go" />
</p>
</fieldset>
}
Я действительно не знаю, где я ошибаюсь. Я разработал свой код со ссылкой на следующую ссылкуClick here. Просьба предложить исправление в коде ...
UPDATE: Я попытался следующий код Matt телесной в в моем контроллере и то, что я вижу код не извлекаются данные из базы данных и код
public ActionResult populatejQgrid()
{
ViewBag.BOData = GetDropDown();
return View();
}
public static List<SelectListItem> GetDropDown()
{
List<SelectListItem> ls = new List<SelectListItem>();
var lm = from m in db.BOs //fetch data from database
select m;
foreach (var temp in lm)
{
ls.Add(new SelectListItem() { Text = temp.Name, Value = temp.Id.ToString() });
}
return ls;
}
В контроллере:
@Html.DropDownList("BOData", (List<SelectListItem>)ViewBag.BOData)
Но когда я увидел значение ls
через часы всегда показывают me Count = 0
, но это не дает мне никакой ошибки.
Я нашел что-то новое в этой проблеме. Когда я держал указатель мыши над var lm; он показывает мне запрос и в имени таблицы запросов в предложении FROM это не то, что в моей базе данных SQL. Мое имя таблицы SQL - BO, а в запросе - BOES. Я не знаю, откуда это имя. Я думаю, что это основная причина всей этой проблемы. Так, как я это преодолею?
@ Html.DropDownList ("BOData"): он только что определили падение вниз Controll с именем. попробуйте использовать @ Html.DropDownListFor (m => m.Id, новый SelectList (ViewBag.BOData, «Значение», «Текст»)) в представлении – Miller
Есть ли какое-либо правило, которое вы должны предоставить TableName для имени класса или класса DbContext имя???? – Rahul
Вы используете EF/nhibernate? Код сначала? – Miller