我有一个 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()" })
}
如您所见,有三个对象被发送到控制器:
Model.SelectedCategoryGuid
,Model.SelectedWorkFlowStatus
和EntityName
.
WorkFlowStatus
是一个枚举,出于某种原因,每当我单击 DropDownList 中的任何枚举时,它总是会成为第一个。
我有三个枚举值插入到 DropDownList 中,它们是:
- 草稿、发布和存档。
因此,每当我单击其中任何一个并将鼠标悬停在控制器中的变量上时,我都会看到参数变量:workflowstatus
始终是 Draft(这是第一个)。
有谁知道为什么没有传递正确的枚举?
真是烦死我了……