DropDown列表onchange事件和MVC中的AJAX

时间:2010-02-10 12:08:35

标签: asp.net-mvc ajax

我的MVC视图中的代码为黑色,如下所示:

<%using (Ajax.BeginForm("MyAction", new { action = "MyAction", controller = "Home", id = ViewData["selected"].ToString() }, new AjaxOptions { UpdateTargetId = "Div1" }))
     { %>
          <%=Html.DropDownList("ddl", ViewData["MyList"] as SelectList, new { onchange = "this.form.submit()" })%>
                 <%} %>

我想设置ViewData [“selected”]的值,以便我可以将其发送到所需的操作。 任何人都可以建议我怎么做?

谢谢!

3 个答案:

答案 0 :(得分:11)

为什么不在下拉列表中使用jQuery onChange事件而不是使用表单?

$(document).ready(function() {
    $("#ddl").change(function() {
        var strSelected = "";
        $("#ddl option:selected").each(function() {
            strSelected += $(this)[0].value;
        });
        var url = "/Home/MyAction/" + strSelected;

        $.post(url, function(data) {
            // do something if necessary
        });
    });
});

答案 1 :(得分:2)

ViewData不是将数据传递回服务器端的地方。表单标记内的html输入控件的值在操作方法中可方便地使用。您可以从各种类型的操作方法参数(模型,formcollection等)中获取这些值。

以下是free asp.net mvc ebook tutorial的链接。是asp.net mvc的好资源。

答案 2 :(得分:0)

在此帖it is just small chnge

找到解决方案

是的,这是对的 - 只有改变正在取代:

onchange =“this.form.submit();”

使用:

onchange =“$(this.form).submit();”