2009-11-12 56 views
0

与数据一个DropDownList从数据库输入建设者我有这样的事情在MVC的contrib

public class Person 
{ 
public Country {get; set;} 

} 

public class PersonInput 
{ 
public ImNotSureWhatShouldIUseHere Country {get; set;} 
} 

有在MVC的contrib枚举一个输入建设者而是因为我检索来自数据这不是为我好DB和我保存的Id所选元素不是值的

回答

2

我成功地做了我自己的输入生成器,它看起来像这样

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/InputBuilders/Field.Master" 
    Inherits="System.Web.Mvc.ViewPage<PropertyViewModel<object>>" %> 
<%@ Import Namespace="MvcContrib.UI.InputBuilder.Views"%> 
<%@ Import Namespace="System.Web.Mvc.Html"%> 
<asp:Content ID="Content2" ContentPlaceHolderID="Input" runat="server"> 
    <%=Html.DropDownList(Model.Name, Model.Value as IEnumerable<SelectListItem>)%>  
</asp:Content> 

,并在输入类是这样的属性:

[PartialView("MySelectList")] 
     public IEnumerable<SelectListItem> Om { get { return new SelectList(Web.Models.DataGenerator.Persons, "Id", "Name", 2); } } 
1

让我试着回顾一下我从你的问题理解为:你有包含您想列idname绑定到一个select数据库表countries元素在视图中。如果这是正确的,你可以尝试做这样的事情:

public ActionResult Index() 
{ 
    IEnumerable<Country> countries = FetchCountriesFromDB(); 
    var model = new SelectList(countries, "Id", "Name", null); 
    return View(model); 
} 

而在你的强类型的视图:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.SelectList>" %> 
... 
<%= Html.DropDownList("country", Model) %> 

,最后你可以有你发布到一个动作:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Index(string country) 
{ 
    // country will contain the selected country id 
    ... 
} 
+1

其实,我尝试使用MVC的Contrib输入建设者,我知道了MVC的内置的东西:) – Omu 2009-11-12 13:05:18

+0

我设法做一个输入我自己的建筑师,所以现在没问题 – Omu 2009-11-12 13:29:09