2012-08-08 62 views
1

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

回答

0

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

它会工作,因为你有:

  • 定义控制方法的返回类型为ActionResult或从它继承,像ViewResultJsonResult任何类型,

  • 保证了返回的值(当然 - 或者你会得到编译时错误!)例如:

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

  • 映射Global.asax中的路线,该请求并将其发送到指定的控制器&动作

的ActionResult仅定义一个公共方法签名的URL匹配:

public abstract void ExecuteResult(ControllerContext context); 

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

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

+0

你说的ActionResult只定义了一个公共方法签名。你想说什么?一个控制者可能有许多公开的方法。 – Thomas 2012-08-08 18:07:29

+0

人们试图用关键字ActionResult作为任何公共方法的返回类型。 – Thomas 2012-08-08 18:09:07

+0

当我们请求任何网址,然后谁在服务器端的第一个控制该请求。它是路由或controller.how路由代码了解哪个控制器需要调用。控制器如何理解哪个视图需要调用。 mvc引擎创建控制器的实例。 – Thomas 2012-08-08 18:12:01

相关问题