我将要制作一个ASP.net MVC应用程序,并希望当用户点击链接时,它可以执行一个ajax调用,向控制器发送数据,然后返回其他数据到视图。
这是我想在我的控制器中调用的方法:
public JsonResult GetImage(string url)
{
Image image = Image.FromFile(url, true);
byte[] byteImage = converter.ImageToBytes(image);
return Json(new { byteImage }, JsonRequestBehavior.AllowGet);
}
这里是控制器的位置:
08983ClassLibrary\EpostASP\Controllers\CustomerController.cs
这是我的 Ajax 调用:
$.ajax({
url: "~/Controllers/CustomerController/GetImage/",
type: 'POST',
contentType: 'application/json',
data: "url="+url,
success: function (image) {
document.getElementById("image").src = "data:image/png;base64," + image;
showImage();
}
});
当我在代码中放置断点时,我可以看到它触发了ajax调用,然后跳过它,从未到达控制器且没有任何错误信息。有什么想法吗?
"~/Controllers/...
吗?你的路由映射包括~/{controller}/{action}...
路由吗?还是你假设 JavaScript/HTML 中的页面相对 URL 会被转换为站点相对 URL?考虑使用一些 HTTP 调试工具(如 Fiddler)来查看请求的确切样子,并确定是否希望服务器处理它。 - Alexei Levenkov