Ajax.BeginForm を使用することを決定するまで、正常に機能していた列挙型のエディター テンプレートを作成しました。プロパティstatus
には次の定義があります。
<DisplayName("Status")>
<UIHint("enum")>
Public Property status As String
私はすでに次のアプローチを試しました:
@Using Ajax.BeginForm("New", "Os", Nothing)
@Html.EditorFor(Function(m) m.status, "Enum", New With { .enumType = GetType(OsStatus)})
End Using
@Ajax.BeginForm("New", "Os", Nothing)
@Html.EditorFor(Function(m) m.status, "Enum", New With { .enumType = GetType(OsStatus)})
@Using Html.BeginForm()
@Html.EditorFor(Function(m) m.status, "Enum", New With { .enumType = GetType(OsStatus)})
End Using
@Html.BeginForm()
@Html.EditorFor(Function(m) m.status, "Enum", New With { .enumType = GetType(OsStatus)})
上記のどれも機能しませんでした。
私のテンプレートのコードは次のとおりです
@ModelType String
@code
Dim options As IEnumerable(Of OsStatus)
options = [Enum].GetValues(ViewData("enumType")).Cast(Of OsStatus)()
Dim list As List(Of SelectListItem) =
(from value in options
select new SelectListItem With { _
.Text = value.ToString(), _
.Value = value.ToString(), _
.Selected = value.Equals(Model) _
}).ToList()
End If
End Code
@Html.DropDownList(Model, list)
メソッドを呼び出した後.BeginForm
、テンプレートは引き続き呼び出されModel
ますが、テンプレート内のプロパティはnull
.
何か案は?