1

ASP.Net MVC 3 Web アプリケーションを開発しています。私の Razor ビューの 1 つには、いくつかのテキスト ボックスとドロップダウン リストが含まれています。ユーザーがドロップダウン リストからオプションを選択すると、次の JQuery コードが実行されます。

意見

<select id="myDDL">
    <option></option>
    <option value="1">F1</option>
    <option value="2">F2</option>
    <option value="3">ST1</option>
    <option value="4">ST2</option>
</select>

<div id="someDivToLoadContentTo">

</div>

JQuery

$(document).ready(function () {

$("#myDDL").change(ChangeEventOfDDL);

function ChangeEventOfDDL(){
var dropDownValue = $('#myDDL').val();
//alert(dropDownValue);
$.ajax({ type: "GET",
       url: '@Url.Action("SomePartialView","testAjax")',
       data: {
           id: dropDownValue
       },
       success: function(data) {
             $('#someDivToLoadContentTo').html(data);
       }
    });
}

});

コントローラ

public class testAjaxController : Controller
{

    public ActionResult SomePartialView(int id)
    {
        var test = "Hello World";

        return View(test);
    }
}

ただし、testAjaxコントローラー内のSomePartialViewメソッドにブレークポイントを設定すると、ヒットすることはありません。

これがなぜなのか、誰かがおそらく示唆できますか?

どんな助けでも大歓迎です。

ありがとう。

アップデート

そのようにAjax呼び出しにerrorData行を追加しましたが、それでも何も得られないようです

$(document).ready(function () {

$("#myDDL").change(ChangeEventOfDDL);

function ChangeEventOfDDL(){
var dropDownValue = $('#myDDL').val();
//alert(dropDownValue);
$.ajax({ type: "GET",
       url: '@Url.Action("SomePartialView","testAjax")',
       data: {
           id: dropDownValue
       },
       success: function(data) {
             $('#someDivToLoadContentTo').html(data);
       },
       error: function (errorData) { $('#someDivToLoadContentTo').html(errorData); }
    });
}

});
4

3 に答える 3

2

問題は次の行にありました

url: '@Url.Action("SomePartialView","testAjax")'

これは間違った URL を作成していたため、アクションは呼び出されませんでした。次の行に変更して、問題を修正しました

url: '/testAjax/SomePartialView/' + dropDownValue
于 2012-07-10T14:49:09.170 に答える
2

コントローラに値を送信する場合はPOST、 ではなくを使用する必要がありますGET

type: "POST"
于 2012-07-10T14:38:29.617 に答える
1

私はそれを見つけたかもしれないと思います:

これを変更してみてください:

 data: {
       id: dropDownValue
   },

これに:

 data: {
       'id': dropDownValue
   },

現在、IDが何にも関係していないことに混乱している可能性があると思います。

于 2012-07-10T14:32:17.480 に答える