0

以下は、ユーザーがASPMVC3ビューの特定のアイコンをクリックするたびにコントローラーに対して行うAjax呼び出しです。コントローラーのメソッドをという名前で呼び出すことになっていPopDetailsますが、コントローラーにブレークポイントを設定した後、これが発生していないことがわかります。以下の両方のURLを使用してみましたが、どちらも機能しませんでした。Ajaxを使用するのはこれが初めてなので、何が起こっているのかよくわかりません。任意のアイデアや提案をいただければ幸いです!

ビューからのAjaxコード:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script type="text/javascript">
    function GetProgramDetails(pgmname) {

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

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

からの方法BatchProgramsController

    [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

2 に答える 2

4
url: '~/BatchProgramsContoller/PopDetails',

に変更する必要があります

url: '~/BatchPrograms/PopDetails',

またはより可能性が高い

url: '/BatchPrograms/PopDetails',
于 2013-02-13T18:29:28.313 に答える
1

上記の回答で行われているように、.netMVCでURLをハードコードすることは一般的に悪い習慣と見なされます。

私は使うだろう

url: '@Url.Action("BatchPrograms", "PopDetails")',

このようにして、何らかの理由でルートが変更された場合、MVCURLヘルパーがそれを処理します。

于 2013-02-14T00:36:03.473 に答える