Ajax.BeginFormを使用するまで、うまく動作していたenumのエディタテンプレートを作成しました。次のような定義があるstatus
プロパティ:Ajax.BeginFormとHtml.BeginFormを呼び出した後、エディタテンプレートが機能しない
<DisplayName("Status")>
<UIHint("enum")>
Public Property status As String
は、私はすでに、次のapproachsを試してみました:
@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)})
上記のいずれも機能しませんでした。 .BeginForm
メソッドを呼び出した後
@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)
を次のように
私のテンプレートのコードは、私のテンプレートがまだ呼ばれているが、私のテンプレート内のModel
プロパティがnull
です。
どのようなアイデアですか?
すべてのポイントが正しいです。しかし、.. 1。'End If'は、簡略化のためにコードを切り捨てながら注意を払わなかった結果でした。 2.後ほど比較を修正しましたが、それは原因ではありませんでした。 3.' Model'を名前として使用するのもエラーでしたしかし、問題を引き起こしていない 'キャスト'(功績!)の一般化に本当に素敵なヒント 私は '.BeginForm'メソッドを呼び出していない場合、そのテンプレートは機能します。私が '.BeginForm'を使用している場合は、**私はOsを作成しているときに発生するnullモデルのドロップダウンをレンダリングするためにエディタに条件を追加する必要があります。 ありがとう! – svallory