从javascript函数调用控制器

时间:2011-04-18 20:00:07

标签: asp.net asp.net-mvc ajax asp.net-mvc-2 asp.net-mvc-3

我正在尝试从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);


 }

3 个答案:

答案 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。