C# MVC3 Html.DropDownList—;DropDownList的值永远不会更改

C# MVC3 Html.DropDownList—;DropDownList的值永远不会更改,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我的模型TaskDetailsModel中有一个DropDownList控件。我已将我的下拉列表声明为: <%= Html.DropDownListFor(model => model.TaskType, new SelectList(Model.TaskTypeDisplayNames, Model.TaskTypes))%> 要使用jquery获取下拉列表的选定值,应使用 $('#dropdownid').val(); 问题实际上在于我以一种明显不正确的方式重命名枚举值

我的模型TaskDetailsModel中有一个DropDownList控件。我已将我的下拉列表声明为:

<%= Html.DropDownListFor(model => model.TaskType, new SelectList(Model.TaskTypeDisplayNames, Model.TaskTypes))%>

要使用jquery获取下拉列表的选定值,应使用

$('#dropdownid').val();

问题实际上在于我以一种明显不正确的方式重命名枚举值。传回服务器时丢失的唯一值是包含空格的选择。(例如,更改为“停用”可以,但更改为“等待客户”无法正确转换)。

是否在数据库中保存Dropdownlist值,并在再次显示页面时检索该值?从数据库中检索一个值。它被写入TaskDetailsModel的构造函数中的TaskType属性(我将把它编辑到原始文章中)。客户端可以更改所选选项。然后,在关闭对话框窗口和返回服务器之前,查看所选选项。所选选项与屏幕上显示的内容不匹配。在您发回之前,不会发生任何事情。此时,下拉列表的值应该在您在POST controller方法中收到的模型对象中。但我正在收集客户端数据,以传递回我的控制器。也许我遗漏了一些更琐碎的东西。。我们要仔细检查一下所有的东西是的,更改值时,所选选项不会更新客户端。令人沮丧的。我想知道为什么?您是否尝试了
$(this).val()
来获取下拉选择的值
public TaskDetailsModel(Task task)
{
    TaskType = task.TaskType;
}

//Client-side code to retrieve form values:
var getDialogData = function () {
    var dialogData = {};

    $(workflowDialogContent).find('input,p,select').each(function () {
        if ($(this).is('input')) {
            dialogData[this.id] = $.trim($(this).val());
        }
        else if ($(this).is('select')) {
            //At this point in time the selected option does not match what I see on the screen. The user has modified the selected value. I do not see it reflected here.
            console.log("Inside here for:", this);
            dialogData[this.id] = $.trim($(this).find('option:selected').val());
        }
        else {
            dialogData[this.id] = $.trim($(this).text());
        }
    });

    return JSON.stringify(dialogData);
};
$('#dropdownid').val();