Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 向ASP MVC项目添加页面方法的正确方法?_Asp.net_Asp.net Mvc_Pagemethods_Webmethod - Fatal编程技术网

Asp.net 向ASP MVC项目添加页面方法的正确方法?

Asp.net 向ASP MVC项目添加页面方法的正确方法?,asp.net,asp.net-mvc,pagemethods,webmethod,Asp.net,Asp.net Mvc,Pagemethods,Webmethod,我刚刚开始学习ASP.NET和MVC模型。我已经研究了基本概念,有一些模型、控制器和视图工作得很好。我知道如何将Web方法和页面方法添加到Web服务中,但无法为MVC项目解决这个问题 我(认为)我需要在我的项目中添加一个页面方法,作为响应AJAX请求的正确方式。这就是我的控制器的外观: namespace MyProject { public class OrderController : Controller { public ActionResult Plac

我刚刚开始学习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
效果很好,创建的视图显示了
视图/Order/Place.aspx的内容,每个人都很高兴。但是,对
/Order/GetDate
的任何请求都会失败,并出现
无法找到资源的
错误。我(认为)我已经正确地启用了页面方法,将其添加到我的
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>


.

页面方法适用于WebForms,而不是MVC。更改您的方法,使其看起来更像这样:

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

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

页面方法用于WebForms,而不是MVC。更改您的方法,使其看起来更像这样:

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

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

+1这是正确的,我认为OP希望在他们看来使用该方法,而且错过了使用jquery的请求。这太容易了,如果我没有读过PageMethods的话,这会很明显,因为PageMethods让我找错了方向。谢谢。我相信System.Web.Mvc中也有这样的功能?+1这是正确的,我原以为OP希望在他们看来使用这种方法,但错过了使用jquery的请求。如果我没有阅读PageMethods,那就太容易了,而且会很明显,因为PageMethods让我查错了树。谢谢。我相信System.Web.Mvc中也有?