我是mvc的新手,但在webform方面有很好的经验。当我们通过jquery调用任何页面方法时,页面方法必须是静态的,并且必须在asp.net webform中具有webmethod属性,但是在asp.net mvc的情况下,当我们通过jquery调用任何控制器方法时,那个方法可以像public一样正常方法。所以我只需要知道jquery如何从外部调用控制器方法。我通过谷歌搜索这个,但没有找到关于这个问题的讨论。所以请有深入了解的人请详细讨论。感谢
答案 0 :(得分:0)
就像同步请求任何ASP.Net-MVC网页一样。它对同步和异步请求的响应方式基本相同。
它会起作用,因为你有:
将控制器方法的返回类型定义为ActionResult
或从中继承的任何类型,例如ViewResult
或JsonResult
,
确保方法的返回值属于同一类型(当然 - 或者你得到编译时错误!)例如:
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头(你可以在控制器内修改),等等。