Перво-наперво @EditoFormodel()
на вашей странице выглядит странно. Я полагаю, вы имели в виду что-то еще.
Теперь по существу: вы украсили свойство Charities
UIHint
. Это свойство типа SelectList
. Это означает, что шаблон Charities.cshtml
должен быть строго набран на SelectList
, а не на MyModel
, как вы это сделали. Вы можете просто удалить этот атрибут UIHint и иметь следующую модель представления:
public class MyModel {
[ScaffoldColumn(false)]
public int CharityId { get; set; }
public SelectList Charities { get; set; }
}
и по вашему мнению:
@model MyModel
@Html.EditorForModel()
и затем внутри ~/Views/Shared/EditorTemplates/MyModel.cshtml
есть:
@model MyModel
@Html.DropDownListFor(model => model.CharityId, Model.Charities)
Это стандартные соглашения. Если вы хотите, чтобы ваш шаблон редактора назывался Charities.cshtml
, вы можете сделать это на своей странице:
@model MyModel
@Html.EditorForModel("Charities")
Но обычно у вас будет следующая модель:
public class FooViewModel
{
[UIHint("Charities")]
public MyModel Charities { get; set; }
}
Теперь, если ваш основной вид строго набран на FooViewModel
, вы можете:
@model FooViewModel
@Html.EditorFor(x => x.Charities)
, который будет отображать шаблон редактора Charities.cshtml
.