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

它正在引用您的控制器,但return View(model);您的 ViewCustomDetails 方法中的行需要存在一个视图文件,该文件通常称为 ViewCustomDetails.cshtml

此视图文件必须采用模型类型Detail

您可能还需要对返回的视图进行 JSON 化。

于 2012-12-16T05:31:08.380 回答
0

我只需要在 jquery 代码中将区域名称添加到我的 URL 中

url: "/Dan/Jac/ViewCustomDetails",

而不仅仅是

url: "/Jac/ViewCustomDetails",
于 2012-12-16T14:24:45.120 回答