簡體   English   中英

如何在MVC 3.0中綁定dropdownlist

[英]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 請幫忙。

DocumentTypeViewModelModule屬性更改為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM