我有一些似乎没有正常工作的代码。我确信我只缺少一些东西,但是我已经把它撞到了太长时间而已经无处可去。
以下是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");
}
在我的Views diretory中,我有一个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>
我实际上在从未被击中的第一,第三和第四行设置了断点。
我意识到部分是指未包含在动作中的数据模型,而是在实际版本中使用的模型。我从这篇文章中删除它以保持简短,认为模型不是问题所在。这是实际的PartialView调用:
MyData myData = MyModel.GetData(MyID);
PartialViewResult pView = PartialView("ThePartial", myData);
我完全迷失了,并且非常感谢任何帮助。
答案 0 :(得分:1)
在部分视图中似乎存在某种语法错误,并且除了不返回视图外,不会以任何方式报告错误。
为了得出这个结论,我做了以下事情:
我创建了一个简单的局部视图,包括:
<div>THIS IS A TEST</div>
然后我让我的Action返回这个视图,并且它成功了。
然后我将旧的(完整的)局部视图中的代码块复制到新的部分视图中,并且一度停止返回任何内容。我现在正在通过代码来缩小错误的位置。
我不得不说,我很不高兴没有以任何方式报道错误。
感谢所有在这里贡献自己想法的人。
答案 1 :(得分:0)
您是否尝试过指定完整的部分视图路径以查看它是否被命中?