同様のタイトルを見回しましたが、適切なものや何も機能しませんでした。エラーが発生する理由を理解しています。エラーを修正してEditorForModel
. このエラーが発生しています:
ディクショナリに渡されたモデル アイテムのタイプは 'MyNameSpace.ViewModels.MyData+MyEnum' ですが、このディクショナリにはタイプ 'MyNameSpace.ViewModels.MyData' のモデル アイテムが必要です。
私のモデル:
[UIHint("MyRadioButton")]
public MyEnum MyRadioRadioButton { get; set; }
//
//
public enum MyEnum
{
Choice1,
Choice2
}
[UIHint]
という名前の EditorTemplate を呼び出すために使用していますMyRadioButton.cshtml
。現在、私のビューは を使用して EditorTemplate も呼び出してい@Html.EditorForModel
ます。これは、一般的なテンプレートを呼び出しているビュー ページの一部です。
@Html.EditorForModel("BasicDetails")
どちらのテンプレートも「/Shared/EditorTemplates/」フォルダーにあります。
これはMyRadioButton.cshtml
テンプレートです:
<td>
<div class="radio">
@Html.RadioButtonFor(m => m.MyRadioButton, "Choice1")<br />
@Html.RadioButtonFor(m => m.MyRadioButton, "Choice2")
</div>
</td>
これはBasicDetails.cshtml
(上記で呼び出された@Html.EditorForModel
)です:
@using MyNameSpace.ViewModels
@model MyData
<table>
@Html.EditorFor(x => x.FirstName)
@Html.EditorFor(x => x.LastName)
@Html.EditorFor(x => x.MyRadioButton) //This is where my error is thrown
</table>
上記の radiobuttonlist エディター テンプレートで複雑なことは避けたいと思います。なぜなら、そこには他のことが起こっているからです (余分なものをすべて取り除きましたが、まだエラーが発生しています)。特定の radiobuttonlist をさまざまなビューで複数回使用します (これが、コピー/貼り付けではなくテンプレートにしたかった理由です)。何かアドバイス?