1

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

4

1 回答 1

0

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

它会起作用,因为你有:

  • 将控制器方法的返回类型定义为ActionResult或任何继承自它的类型,例如ViewResultor 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 标头(如果需要,您可以从控制器内部修改)等等。

于 2012-08-08T14:54:11.970 回答