0

数か月後にこの問題に戻ったので、現在の最良の回答を以下に追加しました。

元の質問では、一般的なドロップダウンを実現する簡単な方法をまだ探していましたが、タイトルは私が直面していた特定のエラーにより密接に関連していました。

回答をより厳密に反映するようにタイトルを修正しました。うまくいけば、これは誰かを助けるかもしれません。


元の質問:

DropDownListFor のジェネリック エディタ テンプレートがスローされ、タイプを変換できませんエラー

次の投稿から取り上げたアイデアを使用して、ドロップダウン リストの汎用テンプレートを作成しようとしています。

Html DropDownListFor をエディタ テンプレートに移動

DropDownHelper クラスを作成しました。

public class DDLOptions<T>
{
    public T Value { get; set; }
    public IEnumerable<SelectListItem> Items { get; set; }
}

これからコントローラーを修正しました:

    public ActionResult Create()
    {
        var model = new FilmEditViewModel();

        FilmDropDownViewModel films = new FilmDropDownViewModel
            {
                Items = _repo.GetSelect(),                    
            };

        model.filmName = films;           
        return View(model);
    }

...これに:

    public ActionResult Create()
    {
        var model = new FilmEditViewModel();

        DDLOptions<FilmDropDownViewModel> films
            = new DDLOptions<FilmDropDownViewModel>
            {
                Items = _repo.GetSelect()
            };

        model.filmName = films;           
        return View(model);
    }

これにより、次のエラーがスローされます。

Cannot implicitly convert type 
'BootstrapSupport.DDLOptions<FilmStore.ViewModels.FilmDropDownViewModel>' 
to 'FilmStore.ViewModels.FilmDropDownViewModel'

DDLOptionsまた、変更されたクラスで動作するようにエディター テンプレートを修正する方法を理解するのも困難です。

4

1 に答える 1