ここで説明されているように EditorFor を機能させようとして頭を壁にぶつけてきましたが、自分のバージョンを機能させることはできません。
2 つの ViewModel があります。
インタビューViewModel
public class InterviewViewModel
{
...
public List<QuestionViewModel> Questions { get; set; }
}
およびQuestionViewModel :
public class QuestionViewModel
{
public int QuestionId { get; set; }
public string QuestionName { get; set; }
...
}
2 か所で EditorTemplates を作成しようとしましたが、
/Views/Interview/EditorTemplates/QuestionViewModel.cshtml
と
/Views/Shared/EditorTemplates/QuestionViewModel.cshtml
どちらも何もしていないようです。
コントローラーコード:
public ActionResult MyClass(int id = 0)
{
using (RRContext db = new RRContext())
{
...
List<QuestionModel> questionModels = new List<QuestionModel>();
questionModels = db.QuestionModels.ToList();
...
viewModel.Questions = questionViewModels;
return View(viewModel);
}
}
私のビューには以下が含まれます:
@model ResidentRank.Models.Interview.InterviewViewModel
... (html.beginform is here)
Html.EditorFor(model => model.Questions);
EditorTemplate コード:
@model ResidentRank.Models.Interview.QuestionViewModel
<div style="clear:both; margin:10px 0px;">
<label>@Html.DisplayFor(m => m.QuestionName)</label>
@Html.DropDownListFor(m => m.SelectedQuestionOption, Model.OptionSelector)
</div>
私の頭の中でぶらぶらしている質問は、「なぜこれが機能しないのですか?!」です。