![](/img/trans.png)
[英]MVC Ajax Partial View call returns partialview site without “parent”
[英]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.