Frage

Ich habe so etwas wie diese

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

}

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

gibt es einen Eingang Builder für Aufzählungen in mvc contrib aber es ist nicht gut für mich, weil ich die Daten aus der DB und ich spare den Id des ausgewählten Elements nicht der Wert

abrufen
War es hilfreich?

Lösung

ich es geschafft, einen Eingangs Erbauer selbst zu tun, es sieht aus wie dieser

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

und die Eigenschaft in der Eingangsklasse es so ist:

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

Andere Tipps

Lassen Sie mich versuchen zu rekapitulieren, was ich von Ihrer Frage verstanden: Sie haben eine Datenbanktabelle countries haben, die Spalten enthält id und name, dass Sie binden an einem select Element in einer Ansicht möchten. Wenn dies richtig ist versuchen Sie könnten so etwas wie dies zu tun:

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

Und in der stark typisierte Ansicht:

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

und schließlich konnte man eine Aktion hat, dass Sie sich zu:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(string country)
{
    // country will contain the selected country id
    ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top