【发布时间】:2013-01-25 14:31:00
【问题描述】:
我有一个如下所示的 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(这是第一个)。
有人知道为什么没有传递正确的枚举吗?
真的很烦我……
【问题讨论】:
标签: asp.net-mvc enums html.dropdownlistfor