jquery如何从外部调用控制器方法

时间:2012-08-08 07:11:39

标签: jquery asp.net-mvc

我是mvc的新手,但在webform方面有很好的经验。当我们通过jquery调用任何页面方法时,页面方法必须是静态的,并且必须在asp.net webform中具有webmethod属性,但是在asp.net mvc的情况下,当我们通过jquery调用任何控制器方法时,那个方法可以像public一样正常方法。所以我只需要知道jquery如何从外部调用控制器方法。我通过谷歌搜索这个,但没有找到关于这个问题的讨论。所以请有深入了解的人请详细讨论。感谢

1 个答案:

答案 0 :(得分:0)

就像同步请求任何ASP.Net-MVC网页一样。它对同步和异步请求的响应方式基本相同。

它会起作用,因为你有:

  • 将控制器方法的返回类型定义为ActionResult或从中继承的任何类型,例如ViewResultJsonResult

  • 确保方法的返回值属于同一类型(当然 - 或者你得到编译时错误!)例如:

        return View(myModel);  //View() returns a ViewResult obejct.
    
  • 将此方法放在继承自System.Web.Mvc.Controller类的对象中。

  • 在Global.asax中映射一条与请求的URL匹配的路由,并将其路由到指定的控制器&动作

ActionResult只定义了一个公共方法签名:

public abstract void ExecuteResult(ControllerContext context);

框架为ActionResult的每个变体定义了具体版本。但是你真的不需要知道ExecuteResult()的内部工作原理。

MVC框架完成所有协调,同时为您提供了许多入口点来重新配置默认值(约定)。它设置ControllerContext,调用ExecuteResult(),为你创建所有默认的HTTP头(你可以在控制器内修改),等等。