0

ドロップダウンリストのイベントjQueryハンドラーを接続して変更しようとしています。ユーザーがドロップダウンの値を変更するとすぐに、コントローラーアクションから返されたhtmlをdiv「支払い」に入力する必要があります。

これが私がこれまでに持っているものであり、なぜそれが機能しないのか、またはこれをさらに追跡する方法についてはわかりません。ドロップダウン値の変更によるエラーや応答はありません。どんな助けでも大歓迎です!

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"を含むすべてのjQuerysrcを含む標準のほとんど変更されていない_Layout.cshtmlファイル

4

1 に答える 1

0

コードは私には問題ないように見えるので、「これをさらに追跡する方法」に答えます

  • ChromeのデバッガーまたはFirebugを使用して、XHRのステータスを確認します
  • MVCアプリを(Visual Studioから)デバッグモードで実行し、コントローラー内にブレークポイントを設定して、実際に呼び出されているかどうか、およびpaymentType正しく送信されているかどうかを確認します(前者の方がコードが正常に見える可能性があります)。
于 2012-04-15T15:30:37.063 に答える