2012-04-11 27 views
1

我刚刚开始使用ASP.NET和MVC模型。我一直在围绕着基本概念工作,并且有一些模型,控制器和视图正常工作。我知道如何将Web方法和页面方法添加到Web服务,但无法找到MVC项目。将页面方法添加到ASP MVC项目的正确方法?

我(想)我需要添加一个页面方法到我的项目作为回应AJAX请求的正确方法。这是我的控制器是什么样子:

namespace MyProject 
{ 
    public class OrderController : Controller 
    { 
     public ActionResult Place (ProductSku sku) 
     {   
      var order = Order.NewOrder(sku); 
      var db = new SystemDiscsLib.Database(); 
      db.SaveOrder(order); 

      return View(order); 
     } 

     [WebMethod] 
     public static string GetDate() 
     { 
      return DateTime.Now.ToString(); 
     } 

张贴到/Order/Place做工精细,并且该视图中创建显示的Views/Order/Place.aspx内容,大家都高兴。但是,对/Order/GetDate发出的任何请求都会失败,并显示The resource cannot be found错误。我(觉得)我已经正确启用页面方法加入这个我Web.configsystem.web下:

<httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
    </httpModules> 

我没有观点称为GetDate,因为我不希望有一个观点,我就可以回国JSON数据。我打算使用JQuery,所以我没有做EnablePageMethodsScripManager的东西,per this article

回答

4

PageMethods适用于WebForms,不适用于MVC。改变你的方法看上去就像这样:

public JsonResult GetDate() 
{ 
    return Json(DateTime.Now.ToString()); 
} 

注意,这个方法不再是静态的,你不应该使用[WebMethod]属性。

+0

+1这是正确的,我以为OP想要在他们看来使用这种方法,并错过了使用jQuery的请求。 – 2012-04-11 23:32:29

+0

这很容易,而且如果我还没有阅读PageMethods,它让我吠叫了错误的树,就会很明显。谢谢。 – 2012-04-11 23:35:24

+0

我相信它也在System.Web.Mvc中? – mgnoonan 2012-04-11 23:40:38

相关问题