0

次のようなjqueryクリックメソッドがあります

<script type="text/javascript">
    function clickView(e) {
        e.preventDefault();
        var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
        $.ajax({
            url: "/Jac/ViewCustomDetails",
            data: { productId: dataItem.Id },
            success: function (response) {
                $("#details").html(response);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                document.write(xhr.responseText);
            }
        });
    }
</script>

基本的に、これはコントローラーへの AJAX 呼び出しを行い、アクションをレンダリングします。

ViewCustomDetails内にあり、エリア内にあるアクションはJacController次のようになります。

    public ActionResult ViewCustomDetails(int productId)
    {
        Detail model;

        model = new Detail
        {
            Price = productId.ToString(),
            Origin = productId.ToString()
        };

        return View(model);
    }

AJAX 呼び出しを起動するボタンをクリックすると、アクションに割り込むことができます。ただし、私の見解ではこのエラーが発生します

The view 'ViewCustomDetails' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Jac/ViewCustomDetails.aspx
~/Views/Jac/ViewCustomDetails.ascx
~/Views/Shared/ViewCustomDetails.aspx
~/Views/Shared/ViewCustomDetails.ascx
~/Views/Jac/ViewCustomDetails.cshtml
~/Views/Jac/ViewCustomDetails.vbhtml
~/Views/Shared/ViewCustomDetails.cshtml
~/Views/Shared/ViewCustomDetails.vbhtml

私のコントローラーはエリア内にあるため、ビューフォルダーには明らかにそのようなコントローラー/アクションはありません。

私の地域のコントローラーを参照するにはどうすればよいですか?

4

2 に答える 2

0

jqueryコードのURLにエリア名を追加する必要がありました。

url: "/Dan/Jac/ViewCustomDetails",

ただの代わりに

url: "/Jac/ViewCustomDetails",
于 2012-12-16T14:24:45.120 に答える
0

コントローラーを参照していますが、return View(model);ViewCustomDetails メソッドの行には、通常は ViewCustomDetails.cshtml と呼ばれる View ファイルが存在する必要があります。

このビュー ファイルは、次のモデル タイプを使用する必要があります。Detail

返されるビューを JSON 化する必要がある場合もあります。

于 2012-12-16T05:31:08.380 に答える