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