我尝试加载表并在加载后将其放入页面中,因此html页面中的JQuery代码为: -
$(document).ready(function () {
$.ajax({
type: "POST",
url: '@(Request.RawUrl + "/getcomment")',
dataType: "html",
data: '',
contentType: "application/json; charset=utf-8",
success: function (response) {
$("#tblComments").html(response);
},
error: function (response) {
}
});
});
在控制器中,我有
[HttpPost]
public string getcomment()
{
return "<table><tr><td>Name</td><td>MiscellaneousUser</td></tr></table>";
}
然而,当页面运行时,不是将表加载到div tblCOmments中,而是将整个页面加载到分区中。我使用的路线命令是: -
routes.MapRoute("OneRule", "page/{id}/{misc}", new { Controller = "document", action = "Index", misc = UrlParameter.Optional });
如何解决getcomment,我调试时不会触发,View执行但控制器不是。
答案 0 :(得分:0)
根据你添加的这条路线,这将是“文件”控制器和“索引”方法。 Route缺少Action方法规定,它将“index”作为要命中的动作方法。
<强>更新强>
我尝试了相同的路线和代码,并且能够重现问题。有很多问题。首先,路线是错误的。就像我之前提到的,action方法不是你当前路由的一部分,getcomment()永远不会被调用,直到你修改你的死记硬背,
routes.MapRoute("OneRule", "page/{id}/{misc}/{action}", new { Controller = "document", action = "Index", misc = UrlParameter.Optional });
因此,当您通过Ajax发布时,您有一条处理URL的路由。