次のような DropDropListFor があります。
using (Ajax.BeginForm("FilterListingsWorkflow", "Listing",
new {
categoryguid = Model.SelectedCategoryGuid,
workflowstatus = Model.SelectedWorkflowStatus,
entityName = Model.EntityName,
},
new AjaxOptions {
HttpMethod = "POST",
UpdateTargetId = "listingTable",
InsertionMode = InsertionMode.Replace
}))
{
<p>Filter listings by Workflow Status:</p>
@Html.DropDownListFor(m =>
Model.SelectedWorkflowStatus,
Enum.GetValues(typeof (WorkflowStatus))
.Cast<WorkflowStatus>()
.Select(v =>
new SelectListItem {
Text = v.ToString(),
Value = ((int) v).ToString()
}),
new { onchange = "$(this.form).submit()" })
}
ご覧のとおり、コントローラーに送信される 3 つのオブジェクトがあります。
Model.SelectedCategoryGuid
、Model.SelectedWorkFlowStatus
およびEntityName
。
WorkFlowStatus
は列挙型であり、何らかの理由で、DropDownList の列挙型のいずれかをクリックすると、常に最初のものになります。
DropDownList に挿入される 3 つの Enum 値があります。
- ドラフト、公開、およびアーカイブ。
したがって、それらのいずれかをクリックするたびに、コントローラーの変数にカーソルを合わせると、パラメーター variable:workflowstatus
が常に Draft (最初のもの) であることがわかります。
CORRECT列挙型が渡されない理由を知っている人はいますか?
本当に迷惑です...