Question

J'ai quelque chose comme ça

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

}

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

il est un constructeur d'entrée pour énumérations dans contrib mvc mais ce n'est pas bon pour moi parce que je récupère les données de la DB et j'enregistrer l'identifiant de l'élément sélectionné pas la valeur

Était-ce utile?

La solution

i réussi à faire un constructeur d'entrée de mon propre, il ressemble à ceci

<%@ 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>

et la propriété dans la classe d'entrée, il est comme ceci:

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

Autres conseils

Je vais essayer de résumer ce que je compris de votre question: vous avez une table base de données qui contient countries colonnes id et name que vous souhaitez lier à un élément select dans une vue. Si cela est correct, vous pouvez essayer de faire quelque chose comme ceci:

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

Et selon vous fortement typé:

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

et enfin vous pourriez avoir une action que vous publiez sur:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string country)
{
    // country will contain the selected country id
    ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top