我正在尝试从javascript函数调用控制器方法,我读到它可以与jquery .ajax一起使用。问题是我不想收到结果,控制器根据我通过ajax发送的id呈现视图。我有以下代码,但它没有做任何事情......
(此功能由flash对象调用)
function display(number) {
$.ajax({
type: "POST",
url: "/Controller/Method",
data: "id=" + number});
}
这是控制器方法的样子:
[HttpPost]
public ActionResult Method(int? id) {
object = //do the query.
return View(object);
}
答案 0 :(得分:1)
如果您想通过ajax更新HTML,您应该在ajax请求的回调函数中更新您网站的内容。如果您只想导航到返回HTML的新页面,请使用window.location方法。
这两种情况都可以确保您在ajax调用的成功回调函数中执行此操作。
答案 1 :(得分:1)
如果您检测到AJAX请求,则可以返回JsonResult
:
if (Request.IsAjaxRequest()) {
return Json(new { Status = "OK" });
} else {
return View();
}
答案 2 :(得分:0)
您可以返回PartialView
,它会返回可用于更新DOM的HTML,但听起来您只是想直接向网址发出请求,在这种情况下,只需执行
window.location = "/url_to_you_controller_action/{id to view}";
假设您的路由与您发出请求的网址相匹配,则控制器操作可以从路由值中获取ID。
AJAX请求通常用于您希望与服务器通信而不执行整页请求和刷新。通常,通信会返回一些内容,但并非总是如此,但如果它确实返回了某些内容,则通常会以某种方式使用从服务器返回的数据来操作DOM。