ASP.NET MVC3下拉列表JQuery更改事件连线错误

时间:2012-04-15 15:11:19

标签: jquery asp.net ajax asp.net-mvc-3 razor

我正在尝试连接并更改事件jQuery处理程序的下拉列表我必须填充div“payment”,只要用户更改下拉列表中的值,就会从控制器操作返回html。

到目前为止,这是我所拥有的,我不知道为什么它不起作用或如何进一步追逐。更改下拉列值没有错误或响应。非常感谢任何帮助!

CSHTML:

<script type="text/javascript">
$(document).ready(function () {
    $("#PaymentType").change(function () {
        var selection = $("#PaymentType").val();
        var dataToSend = {
            paymentType: selection
        };

        $.ajax({
            url: "Order/PaymentChanged",
            type: "GET",
            data: dataToSend,
            success: function (data) {
                $("#payment").text("server returned:" + data.agent);
            }
        });
    });
});
</script>

@using (Html.BeginForm())
{
   <div id = "payment">
   <br />
   @Html.Label("Select payment method")
   <br />
   <select id="PaymentType" name="PaymentType">
     <option value="CreditCard">Credit Card</option>
     <option value="Cash">Cash</option>
     <option value="Check">Check</option>
   </select>
   </div>
 }

OrderController.cs

    public JsonResult PaymentChanged(string paymentType)
    {
        return Json(new { agent = "sample html" }, JsonRequestBehavior.AllowGet);
    }

包含src =“/ Scripts / jquery-1.5.1.min.js”的所有jQuery src的标准,基本不变的_Layout.cshtml文件

1 个答案:

答案 0 :(得分:0)

代码对我来说很好,所以我会回答“如何进一步追逐”

  • 使用Chrome's debuggerFirebug查看status of your XHR
  • 在调试模式下运行您的MVC应用程序(来自Visual Studio)并在控制器中放置一个断点,以查看它是否实际被调用以及是否正确发送paymentType(前者更可能是您的代码看起来很好)。