繁体   English   中英

PartialView方法返回Null(似乎根本没有调用视图)

[英]PartialView Method returns Null (doesn't seem to call the view at all)

我有一些似乎无法正常工作的代码。 我确定我只是想念一些东西,但是我已经把头撞得太久了,而且一无所获。

这是AJAX调用:

$.ajax({
    type: 'POST',
    url: '@Url.Action("GetPartial", "MyPage")',
    async: true,
    data: {
        MyID: 'ABC123'
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert('Error loading partial for ' + MyId + '\n\n' + jqXHR + '-' + textStatus + '-' + errorThrown);
    }
}).done(function (result) {
    $(data).html(result);
});

这是MyPageController.cs中的操作:

[HttpPost]
public PartialViewResult GetPartial(string MyID)
{
    return PartialView("ThePartial");
}

在“视图”目录中,我有一个MyPage子目录,其中包含ThePartial.cshtml。

我已经在该cshtml中放置了断点,而且似乎从未被调用过。

另外,通过将操作代码稍作更改为:我已验证PartialView为空:

[HttpPost]
public PartialViewResult GetPartial(string MyID)
{
    PartialViewResult pView = PartialView("ThePartial");
    return pView;
}

然后在“返回”行上放置一个断点,然后查看pView的内容。

以下是部分视图的缩写形式。

@model MyProject.Models.MyModel // There is a breakpoint here
@{
    var x = "testing"; // There is a breakpoint here
    x += " 123"; // There is a breakpoint here
}
<div>@x</div>

实际上,我在从未命中过的第一行,第三行和第四行上设置了断点。

我意识到,部分引用是指未包含在操作中的数据模型,但是在实际版本中是使用IS模型。 为了简短起见,我从这篇文章中删除了它,以为模型不是问题所在。 这是实际的PartialView调用:

MyData myData = MyModel.GetData(MyID);
PartialViewResult pView = PartialView("ThePartial", myData);

我对此完全迷失了,不胜感激。

似乎在局部视图中存在某种语法错误,并且除了不返回视图以外,没有以任何方式报告该错误。

为了得出这个结论,我做了以下工作:

我创建了一个简单的局部视图,包括:

<div>THIS IS A TEST</div>

然后我让Action返回此视图,并成功完成了此操作。

然后,我将代码块从旧的(完整的)局部视图复制到了新的局部视图,并在某一时刻停止返回任何内容。 我现在正在检查代码以缩小错误的位置。

我不得不说我很不高兴没有以任何方式报告该错误。

谢谢大家在这里发表了自己的想法。

您是否尝试通过指定完整的局部视图路径来查看是否被击中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM