1

ASP.NETとMVCモデルを使い始めたばかりです。私は基本的な概念に取り組み、いくつかのモデル、コントローラー、およびビューが正常に機能しています。WebメソッドとページメソッドをWebサービスに追加する方法は知っていますが、MVCプロジェクトでは理解できません。

AJAXリクエストに応答する正しい方法として、プロジェクトにPageメソッドを追加する必要があると思います。これは私のコントローラーがどのように見えるかです:

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();
        }

へのPOSTは正常に/Order/Place機能し、ビューが作成されてコンテンツが表示されViews/Order/Place.aspx、誰もが満足しています。/Order/GetDateただし、エラーで失敗するように行われた要求The resource cannot be foundWeb.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データを返すだけです。私はJQueryを使用するつもりなので、この記事EnablePageMethodsのとおり、その他のことはしませんでした。ScripManager

4

1 に答える 1

4

PageMethodsはWebForms用であり、MVC用ではありません。メソッドを次のように変更します。

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

メソッドは静的ではなくなったため、[WebMethod]属性を使用しないでください。

于 2012-04-11T23:27:18.220 に答える