1

我刚刚开始使用 ASP.NET 和 MVC 模型。我已经围绕基本概念进行了研究,并且有一些模型、控制器和视图工作正常。我知道如何将 Web 方法和页面方法添加到 Web 服务,但无法为 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.config, 下正确启用了页面方法system.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 数据。根据本文EnablePageMethods,我打算使用 JQuery,所以我没有做这些ScripManager事情。

4

1 回答 1

4

PageMethods 用于 WebForms,而不是 MVC。改变你的方法看起来更像这样:

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

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

于 2012-04-11T23:27:18.220 回答