[英]How to bind dropdownlist in mvc 3.0
我是mvc的新手,我想在MVC 3.0中綁定dropdownlist。 我的代碼如下
表
tbl_Modules
------------------
Module_Id
ModuleName
ModuleDescription
tbl_DocumentTypes
-------------------
Document_Id
DocumentName
DocumentDescription
Module_Id
我想創建一個表單來添加文檔類型,並且在表單中我想要一個下拉列表,其中Module_Id
為值, ModuleName
為文本。
public class DocumetRepository
{
InwardManagementEntities db = new InwardManagementEntities();
public IQueryable<tbl_DocumentTypes> FindAllDocumentTypes()
{
return db.tbl_DocumentTypes;
}
}
public class DocumentTypeViewModel
{
ModuleRepository _modulerepository = new ModuleRepository();
public tbl_DocumentTypes Document { get; private set; }
public SelectList Modules { get; private set; }
public DocumentTypeViewModel(tbl_DocumentTypes document)
{
Document = document;
//var _modules = _modulerepository.FindAllModules().Select(d => new {Module_Id= SqlFunctions.StringConvert((double?)d.Module_Id), Text = d.ModuleName });
var _modules = _modulerepository.FindAllModules().Select(d => new SelectListItem() {Value= SqlFunctions.StringConvert((double?)d.Module_Id), Text = d.ModuleName });
Modules = new SelectList(_modules, Document.Module_Id);
}
}
控制器:
public ActionResult AddDocument()
{
tbl_DocumentTypes _document = new tbl_DocumentTypes();
return View(new DocumentTypeViewModel(_document));
}
視圖:
<div class="editor-label">Module</div>
<div class="editor-field">
@Html.DropDownList("Document.Module_Id", Model.Modules.ToList())
@Html.ValidationMessageFor(model => model.Document.Module_Id)
</div>
但是在下拉列表中,我正在獲取System.Web.Mvc.SelectListItem
。 請幫忙。
將DocumentTypeViewModel
的Module
屬性更改為IEnumerable<SelectListItem>
類型
public class DocumentTypeViewModel
{
ModuleRepository _modulerepository = new ModuleRepository();
public tbl_DocumentTypes Document { get; private set; }
public IEnumerable<SelectListItem> Modules { get; private set; }
public DocumentTypeViewModel(tbl_DocumentTypes document)
{
Document = document;
//var _modules = _modulerepository.FindAllModules().Select(d => new {Module_Id= SqlFunctions.StringConvert((double?)d.Module_Id), Text = d.ModuleName });
Modules = _modulerepository.FindAllModules()
.Select(d => new SelectListItem
{
Value= SqlFunctions.StringConvert((double?)d.Module_Id),
Text = d.ModuleName
});
}
}
在您看來:
<div class="editor-label">Module</div>
<div class="editor-field">
@Html.DropDownList("Document.Module_Id", Model.Modules)
@Html.ValidationMessageFor(model => model.Document.Module_Id)
</div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.