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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage