根据这篇文章,我试图通过Ajax
加载Partial View
。但是partial view
没有被加载。
注意事项:
- 我使用默认安装/配置的Jquery,在Visual Studio的MVC Core Web应用程序项目模板中。
- Google Chrome的开发人员工具没有显示任何错误。浏览器视图源仍然显示
<div id="UpdateTabData"></div>
标签为空。 - 我已测试在Ajax调用的点击事件内放置了
alert('Test')
并且在控制器操作方法内使用断点
来确实调用了TestAction方法,并且该方法确实返回了return PartialView("PartialView", myViemodel);
而没有任何错误。 - 但是Ajax最终从其错误函数返回了我的自定义错误消息。
控制器:
[HttpGet]
public IActionResult TestAction(string calledFrom)
{
... some code here with a view model myViemodel
return PartialView("myPartialViewName", myViemodel);
}
视图:
@model myProj.Models.myTestViewModel
...some html here...
<div id="UpdateTabData"></div>
... more html here
...
在视图末尾的Ajax代码:
$(document).ready(function () {
$('#myTabstripID li').click(function () {
var li_id = $(this).attr("id");
$.ajax({
url: '@Url.Action("TestAction", "myControllerName")',
data: { calledFrom: li_id},
contentType: 'application/json',
dataType: 'html'
type: 'GET',
cache: false,
success: function (data) {
$('#UpdateTabData').html(data);
},
error: function (data) {
alert('Error occurred');
}
});
});
});
dev tools -> network -> Headers
选项卡显示了状态码:200 OK
。 - namreturn PartialView("myPartialViewName", myViemodel);
语句中添加.cshtml
扩展名来解决问题。很抱歉,我没有意识到状态码:200 OK
实际上是在我发现响应部分中未找到视图文件的消息后(我的错)。我只是随便添加了.cshtml
扩展名,并没有检查它是否实际上已解决问题。为了其他用户的利益,如果您将您的评论转换为“答案”,我会将其标记为答案。 - nam