0

我有这样的 ajax 函数可以在 HTML 选择列表上运行

$.ajax({
                type: "POST",
                url: urlemp,
                success: function (returndata) {
                    if (returndata.ok) {
                        //  var data = eval("" + returndata.data + "");
                        select.empty();
                        select.append($('<option>' + "" + '</option>'));
                        $.each(returndata.data, function (rec) {

                            select.append($('<option>' + returndata.data[rec].Name + '</option>'));
                        });
                        select.show('slow');
                        select.change();
                    }
                    else {
                        window.alert(' error : ' + returndata.message);
                    }

                }
            }
    );

这是 HTML 元素

        <select id="cmbDept"></select>

如何使用 MVC 3 获取控制器中所选项目的值?

4

3 回答 3

1

您有 4 种方法可以做到这一点
1. 您可以绑定 select 的 change 事件$(select).change(function(){})并再次发送ajax请求,包装您将能够在controller

2. 中获得的选定值。您可以将hidden input视图中的 a 绑定到 a视图模型中的属性现在绑定到 select 的更改,并以这种方式填充输入,每当您的表单被回发时,它将具有正确绑定到model

3 的值。@Don 使我免于编写第三种方式,所以请阅读他的回答。

4.如果你有一个model这个视图被绑定到然后简单的保留一个property名称modelcmbDept选择的值将被自动回发

于 2013-01-27T08:40:20.973 回答
0

我们FormCollection作为控制器中的参数。并分配nameselect

<select id="cmbDept" name="cmbDept"></select>

现在FormCollection有这个发布的价值。

public ActionResult Index(FormCollection form)
    {
        string val = "";
        foreach (var key in form.AllKeys)
        {
            if (key.Contains("cmbDept"))
            {
                 val = form.Get(key);
            }
        }
        --your code here with the posted values
        return View();
    }
于 2013-01-27T08:36:39.587 回答
0

要获取select客户端上元素的值,只需使用$("#cmbDept").val().

要在元素提交到服务器后获取元素的值,请添加 a并简单地创建一个在您的调用发布到的控制器操作中命名name="cmbDept"的参数。selectcmbDept$.ajax

于 2013-01-27T08:38:08.730 回答