2

Ich mache MVC und habe Look-up-Werte in Dropdown-Listen. Beim Aufruf von UpdateModel nur Werte bevor die Look-Ups aktualisiert werden und nichts afyer. Ich bekomme jedoch keine Fehler.MVC - UpdateModel und DropDownLists

Ich kann bearbeiten und erstellen und den folgenden Code in meinem cintroller benutzen.

Viewdata [ "SiteMaintenanceId"] = von m in this._siteRepository.FindAllSiteMaintenances() ToList()

 select new SelectListItem 
    { 
     Text = m.Maintenance, 
     Value = m.SiteMaintenanceId.ToString(), 
     Selected = (m.SiteMaintenanceId == site.SiteMaintenanceId) 
    }; 


     return View(new SiteFormViewModel(site,    
     this._siteRepository.FindAllSiteOperators())); 

Ich habe folgendes aus meiner Sicht:

Das scheint ok zu binden und erlaubt mir, den ausgewählten Wert bei der Bearbeitung meiner Drop-Down- und Erstellungsfunktionen zu erhalten.

Dies ist mein allererstes Mal MVC so jede Hilfe sehr geschätzt.

Antwort

1

Es scheint, dass es sehr wenig Antwort auf diese Abfrage gibt, also werde ich mich daran versuchen.

Aus dem Text ist es ein wenig schwierig, das Problem/die Anforderung zu verstehen, aber wenn ich Sie richtig verstehe, versuchen Sie, einen Wert von einem Dropdown-Recht zurück zu bekommen? Wenn nicht, lass es mich wissen und ich werde das für eine bessere Passform bearbeiten.

Angenommen, ich bin aber richtig;

Um meine Dropdown-Liste einzurichten, mache ich die Dinge ein wenig anders. Ich denke nicht, dass es wichtig ist, aber ich dachte, ich würde es trotzdem teilen.

Ich habe ein FormViewModel wie folgt;

public class CalendarEventFormViewModel 
{ 
    public CalendarItem Event { get; set; } 
    public SelectList States; 
} 

Die in meinem ActionResult habe ich die folgenden, um die Staaten zu liefern;

fvm.States = new SelectList(Enumerations.EnumToList<Enumerations.AustralianStates>(), "Value", "Key", fvm.Event.state); 

ich dann einfach zurück zur Ansicht.

Die Ansicht hat eine Drop-Down wie folgt;

<% using (Html.BeginForm()) { %> 
    <%=Html.DropDownList("selectedState", Model.States, new { @class="stateSelector" })%> 
<%} %> 

So jetzt habe ich meine Liste der Staaten. Bei einem Postback möchte ich den ausgewählten Status erhalten. So ...

[AcceptVerbs(HttpVerbs.Post), ValidateInput(false), Authorize] 
public ActionResult Add(FormCollection collection) 
{ 
    CalendarItem fvm = new CalendarItem(); 
    UpdateModel(fvm); 
} 

Jetzt funktioniert das für mich und alle Felder innerhalb des CalendarItem Objekt gefüllt sind in

jedoch, wenn Sie nicht Ihre Werte bekommen Sie vielleicht versuchen wollen.

String state = collection["selectedState"]; 

Noch einmal, ich bin nicht sicher, ob dies Ihre Frage beantwortet, und wenn es nicht bitte einen Kommentar zu dieser Antwort anhängen und ich werde entsprechend anpassen.

Verwandte Themen