1

POST以下は、ASP MVC3 ビューに情報を返すために使用するAjax変数です。ただし、.dialg()ポップアップ機能を動作させることはできません。現在、 を呼び出すアイコンをクリックしてGetProgramDetails(pgmname)も、何も起こりません。初めてAjaxを使用するので、何か提案をいただければ幸いです。どうも!

<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>

<script type="text/javascript">
    function GetProgramDetails(pgmname) {

        var request = $.ajax({
            type: 'POST',
            url: '/BatchPrograms/PopDetails',
            data: { programName: pgmname },
            dataType: 'html'
        });

        request.done(function (data) {
            $('#data').dialog();
        });
</script>

編集

関数を更新して、コードが呼び出されているかどうかをrequest.done簡単に確認できるようにしました。alertChrome のデバッガーを使ってみると、内部のコードが完全にスキップされていることがわかりました。

    request.done(function (data) {
    alert("HERE!");
        $('#programExplanation').html(data);
    });

2回目の編集

ajax が値を返すコントローラー コードは次のとおりです。

    [HttpPost]
    public string PopDetails(string programName)
    {
        BatchPrograms batchprograms = db.BatchPrograms.Find(programName);
        if (batchprograms == null) return string.Empty;
        StringBuilder s = new StringBuilder();
        s.Append(batchprograms.ProgramName + " - " + batchprograms.ShortDescription);
        s.Append("<br />Job Names: " + batchprograms.PrdJobName + ", " + batchprograms.QuaJobName );
        s.Append("<br /> " + batchprograms.Description);
        return s.ToString();
    }
4

1 に答える 1

2

次のように、成功メソッドを使用してコールバックを処理する必要があります。

var request = $.ajax({
        type: 'POST',
        url: '/BatchPrograms/PopDetails',
        data: { programName: pgmname },
        dataType: 'html'
    }).success(function(data){ $('#data').dialog()} );

これによりダイアログが起動されますが、応答データを取得したい場合は、次のようにデータがロードされた後のコールバックである 2 番目のパラメーターを GetProgramDetails に持たせることができます。

function GetProgramDetails(pgmname, callback) {

    var request = $.ajax({
        type: 'POST',
        url: '/BatchPrograms/PopDetails',
        data: { programName: pgmname },
        dataType: 'html'
    }).success(callback);
}

このようにして、応答が受信された後、コールバックの実装でデータをどう処理するかを処理できます。この場合、ダイアログにデータを設定してダイアログを起動するようです。

于 2013-02-13T19:35:01.060 に答える