Cómo establecer el valor predeterminado para seleccionar la lista en MVC durante el tiempo de ejecución

Tengo una vista en la que recorre el modelo y muestra los detalles en modo editable. Uno de los valores del modelo es de una lista de selección como la siguiente

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

    }
    } 

Aquí elViewBag.activity_code_type contener los valoresInternal & Standard al enviar si el usuario seleccionóInternal es valioso1 pasará al controlador y siStandard será2 y aquí el valor predeterminado será"--- Select Activity Code Type ---"

Ahora cuando abro la misma solicitud en modo de edición si el valor del modelo paraprovider_service_dtls[i].activity_code_type es1 la lista de selección debe ser predeterminada, seleccione comoInternal yStandard si esto es2.

Codifiqué así

    @Html.DropDownListFor(m => m.provider_service_dtls[i].activity_code_type,
 (SelectList)@ViewBag.activity_code_type, Model.provider_service_dtls[i].activity_code_type)

Pero no está funcionando como se esperaba, está dando el resultado como se muestra a continuación.

Aquí debe seleccionarse por defectoInternal. ¿Cuál es el cambio para lograr lo mismo?

Editado

Modelo

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; }


    }

Plantilla de editor

@model Provider.Models.provider_preapproval
@Html.DropDownListFor(m => m.activity_code_type, (SelectList)ViewData["options"])

Ver

Dentro del bucle for codifiqué así

  @Html.EditorFor(m => m.provider_service_dtls,
new { options = (SelectList)@ViewBag.activity_code_type })

Recibo un error

'System.Web.Mvc.HtmlHelper' no contiene una definición para 'EditorFor' y la mejor sobrecarga del método de extensión 'System.Web.Mvc.Html.EditorExtensions.EditorFor (System.Web.Mvc.HtmlHelper, System.Linq.Expressions .Expression>, string, object) 'tiene algunos argumentos inválidos

Respuestas a la pregunta(2)

Su respuesta a la pregunta