0

コントローラクラスにoutputというメソッドがあります。ドロップダウンリストで選択した項目を変更するときにパラメーターを送信し、そのパラメーターに応じて特定のSQLクエリを実行し、結果を返すようにします。問題は、結果を返すときに新しいページを開きたくないということです。メソッドを実行するためのURLを開くのではなく、アラートでそのクエリの結果を表示したいだけです。これは私の現在のJavaScriptであり、メソッドはoutputというActionResultであり、文字列であるtestというパラメーターがあります。

    <script src="../../Content/jquery.js"></script>
<script type="text/javascript">
    jQuery(function () {

        jQuery("#SelectedCentre").change(function () {
            var _this = jQuery(this);
            var selectedCentre = _this.val();
            window.location.href = "/Centres/output?test=" + selectedCentre;
        });
    });
</script>
4

3 に答える 3

3

そのためにajax呼び出しを行う必要があります:

jQuery(function(){

    jQuery("#SelectedCentre").change(function () {
        var _this = jQuery(this);
        var selectedCentre = _this.val();
        jQuery.get("/Centres/output?test=" + selectedCentre, function(results){
         // do something with results here
        });
    });
});

コメントであなたの質問に答えるために編集してください:

コントローラで、次のようなタイプjsonのオブジェクトを返します。

 var data = new List<SelectListItem>
                           {
                               new SelectListItem
                                   {
                                       Text = "Test1",
                                       Value = "1"
                                   },
                                new SelectListItem
                                   {
                                       Text = "Test2",
                                       Value = "2"
                                   }
                           };
            return Json(data, JsonRequestBehavior.AllowGet);

そして、jQueryコードを更新してjsonオブジェクトを処理し、オプションを作成します。

$.getJSON("/Centres/output?test=" + selectedCentre, function (results) {
    $.each(results, function (i, item) {
        $("<option>", { text: item.Text, value: item.Value }).appendTo("#mySelect");
    });
});
于 2013-03-13T18:21:49.767 に答える
2

JQueryのgetメソッドを使用したい。

 jQuery.get('Centres/output?test=' + selectedCentre, function (result) {
     alert(result);
 });

JSONである限り、必要な結果で何でもできます。HTMLの場合は、ページ上の既存の要素にプッシュできます。

また、jqueryが提供する$を使用しないのはなぜですか?

于 2013-03-13T18:21:16.693 に答える
0
jQuery.get("/Centres/output?test=" + selectedCentre, function(results){
         // do something with results here
console.log(results);
        });
于 2013-03-13T18:23:47.070 に答える