0

私はasp.netとMVCにかなり慣れていません。

jsonリクエストを使用して、いくつかのテキストボックスに入力しようとしました。

しかし、jsonを使用しているときに、ビュー内の他のテキストボックスの値にアクセスできないことに気付きました。例えば

string s2 = Request.Form["selectedTestCategory"];

デバッグすると、s2=nullが生成されます。しかし、ページに送信ボタンを配置すると、値はnullになりません。(これまでのところ、コントローラーのJSONメソッドに渡すことができるパラメーターは1つだけです)

私の質問は、jsonリクエストを開始するとどうなりますか?そして、なぜRequest.Formから値を取得できないのか[...]

ありがとう、

アップデート:

これは私のjsonです

<script>
$(document).ready(function() {
    $('select#testStationUniqueId').change(function() {
        var testStation = $(this).val();
        $.ajaxSetup({ cache: false });



        $.ajax({
            url: "TestInput/getTestStationInformation/" + testStation,

            type: 'post',
            success: function(data) {
                $('#driveDetailDiv').empty();
                for (var i = 0; i < data.length; i++) {
                    $.post('TestInput/Details/', { id: data[i] }, function(data2) {
                        $('#driveDetailDiv').append(data2);
                    });
                }
            }
        });
    });
});

そしてこれは私のコントローラーにあります

public PartialViewResult Details(string id)
    {
        //DriveDetails t = new DriveDetails(id);
        //return PartialView("DriveDetailsPartial", t);

        test_instance_input_model ti = new test_instance_input_model();
        string s2 = Request.Form["selectedTestCategory"];
        repository.setTestInstanceAttributes(ti, id);

        return PartialView("TestInstancePartial", ti);
    }

詳細ではs2はnullですが、送信ボタンを使用すると、正しい値になります。

だから私はjsonリクエストを送信するときになぜそれがnullになるのかを理解しようとしています。

4

1 に答える 1

1

JavaScriptでは、jQuery ajaxリクエストにデータを含めません(jQuery ajaxを参照)。したがって、jQueryはリクエストパラメータを追加していません。jQueryがパラメーターに変換するデータオブジェクトを含める必要があります。つまり、データオブジェクトのプロパティが多いほど、リクエストのパラメーターも多くなります。

$.ajax({
    url: '',
    data: { selectedTestCategory: 'category' },
    dataType: 'post',
    success: function() {}
});

また、コントローラーでは、リクエストパラメーターにショートカットできます。

string s2 = Request["selectedTestCategory"];
于 2012-11-14T03:24:14.547 に答える