So legen Sie den Standardwert für die Auswahl der Liste in MVC zur Laufzeit fest
Ich habe eine Ansicht, in der es das Modell durchläuft und die Details im bearbeitbaren Modus anzeigt. Einer der Modellwerte stammt aus einer Auswahlliste wie unten
@if (Model != null)
{
for (int i = 0; i < Model.provider_service_dtls.Count; i++)
{
<tr>
<td> @Html.DropDownListFor(m => m.provider_service_dtls[i].activity_code_type,
(SelectList)@ViewBag.activity_code_type, "--- Select Activity Code Type ---", new { @class = "m-wrap" })</td>
<td>@Html.TextBoxFor(m => m.provider_service_dtls[i].activity_name)</td>
</tr>
}
}
Hier dieViewBag.activity_code_type
enthält die WerteInternal & Standard
beim Senden, wenn der Benutzer @ ausgewählt hInternal
dessen Wert1
wird an den Controller übergeben und wennStandard
es wird sein2
und hier ist der Standardwert"--- Select Activity Code Type ---"
Jetzt, wenn ich die gleiche Anfrage im Bearbeitungsmodus öffne, wenn der Modellwert fürprovider_service_dtls[i].activity_code_type
ist1
Die Auswahlliste sollte standardmäßig ausgewählt sein alsInternal
undStandard
wenn es @ i2
.
Ich habe das so codiert
@Html.DropDownListFor(m => m.provider_service_dtls[i].activity_code_type,
(SelectList)@ViewBag.activity_code_type, Model.provider_service_dtls[i].activity_code_type)
Aber es funktioniert nicht wie erwartet es gibt das Ergebnis wie unten Bild
Hier sollte standardmäßig @ ausgewählt seInternal
. Was ist die Änderung, um das gleiche zu erreichen?
Bearbeitet
Model
public partial class provider_service_dtls
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long service_id { get; set; }
public long preapproval_id { get; set; }
public string activity_code_type { get; set; }
public string activity_type { get; set; }
public string activity_type_name { get; set; }
public string activity_code { get; set; }
public string activity_name { get; set; }
public string internal_activity_code { get; set; }
public string internal_activity_name { get; set; }
[ForeignKey("preapproval_id"), InverseProperty("provider_service_dtls")]
public virtual provider_preapproval preapproval { get; set; }
}
Editor template
@model Provider.Models.provider_preapproval
@Html.DropDownListFor(m => m.activity_code_type, (SelectList)ViewData["options"])
Aussich
Innerhalb der for-Schleife habe ich so codiert
@Html.EditorFor(m => m.provider_service_dtls,
new { options = (SelectList)@ViewBag.activity_code_type })
Ich erhalte eine Fehlermeldung
'System.Web.Mvc.HtmlHelper' enthält keine Definition für 'EditorFor' und die beste Überladung der Erweiterungsmethode 'System.Web.Mvc.Html.EditorExtensions.EditorFor (System.Web.Mvc.HtmlHelper, System.Linq. Expressions.Expression>, string, object) 'hat einige ungültige Argumente