MVC Partial View在dev中返回正常,但在404错误中失败

时间:2018-02-27 16:56:05

标签: asp.net-mvc asp.net-ajax kendo-asp.net-mvc asp.net-mvc-partialview

我在按钮点击时发送ajax调用以在Kendo Modal窗口中加载局部视图。在开发模式下,它正如预期的那样做得很好但在现场给我一个404错误。

以下是我的Ajax调用

        $('.add_page').click(function (e) {
        e.preventDefault();
        $.ajax({
            url: '../Page/AddEditPage',
            type: 'Get',
            accepts: 'text/html',
            context: self,
            success: self.addEditPageWindowCallBack,
            error: function () { toastr.error('Error: Something went wrong'); },
            complete: function () { }
        });
    });

以下是Ajax成功方法

    addEditPageWindowCallBack: function (html, textStatus, jqXHR) {
    var model = $('#AddEditPageModelWindow').data('kendoWindow');

    if (model === undefined) {
        model = $('#AddEditPageModelWindowLayout').data('kendoWindow');
    }

    model.content(html);
    model.center();
    model.open();
},

我的控制器操作方法如下

    public ActionResult AddEditPage(int Id = 0)
    {
        var pageId = Id;
        var pageViewModel = new PageViewModel();

        if(pageId == 0)
        {
            pageViewModel = new PageViewModel
            {
                Page = new Page(),
            };

            pageViewModel.Page.CreatedBy = User.Identity.GetUserId();
        }
        else
        {
            var pageData = pageService.GetPageByPageId(pageId);

            pageViewModel = new PageViewModel
            {
                Page = pageData,
            };
        }

        return PartialView("~/Views/Shared/Page/_AddEditPage.cshtml", pageViewModel);
    }

最初,我正在返回部分视图,如下所示

return PartialView("Page/_AddEditPage", pageViewModel);

我已经改变了以下但仍然没有效果

return PartialView("~/Views/Shared/Page/_AddEditPage.cshtml", pageViewModel);

我正试图找到解决这个问题的方法。任何解决此问题的想法,或者是否有任何方法可以捕获实时环境中的确切错误都将有所帮助。

以下是错误的网络屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:1)

你可以在你的javascript代码中使用html helper,比如

url: '@Html.UrlAction("actionname","controllername")'

答案 1 :(得分:0)

似乎错误可能在以下行

 url: '../Page/AddEditPage',

使用url: '~/../Page/AddEditPage',

进行尝试