2

特定のアクションが発生したときに、コントローラーからビューに json データを送信したいと考えています。

これをコントローラーで使用してデータを送信しました

[HttpGet] 
 public JsonResult JSONGetParking(int buildingID){

     return this.Json(
                          new
                          {
                              Result = (from obj in db.Parkings.Where(p => p.buildingID == buildingID) select new { ID = obj.ID, Name = obj.note })
                          }
                          , JsonRequestBehavior.AllowGet
                       );
}

それはとてもうまくいきます

私のスクリプトでは、これを使用しました:

FloorScript.js

$(document).ready(function () {
        $('#buildingID').change(function () {
            alert("what is not");
            $.getJSON('JSONGetParking?buildingID=' + $('#buildingID').val(), function (data) {
                alert("afd");
                var items = " ";
                $.each(data, function (obx, oby) {
                    items += "<option value='" + oby.ID + "'>" + oby.Name + "</option>";
                });
                $('#parkingID').html(items);
            });
        });
    });

Google chrome を開いたところ、リクエストとレスポンスが次のように表示されます。

ここに画像の説明を入力

警告した2 つのテキストが表示されます

ただし、私のセレクターでは、undefined value

HTML

<div id="editor-label">
        <select id="parkingID" name="parkingID"></select>
    </div>

これにjqueryを追加しました

@section scripts {
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/Scripts/FloorScript.js");
}
4

2 に答える 2

2

data.Result各ループで使用する

$(document).ready(function () {
        $('#buildingID').change(function () {
            alert("what is not");
            $.getJSON('JSONGetParking?buildingID=' + $('#buildingID').val(), function (data) {
                alert("afd");
                var items = " ";
                $.each(data.Result, function (obx, oby) {
                    items += "<option value='" + oby.ID + "'>" + oby.Name + "</option>";
                });
                $('#parkingID').html(items);
            });
        });
    });

お役に立てれば...

于 2013-11-01T09:46:43.327 に答える