0

amf remoting を使用して、フラッシュから asp.net mvc アクションへの呼び出しを実行できるかどうかは誰にもわかりませんか?

はいの場合、どのように?どの技術を使用し、どのように組み合わせるか

フラッシュ側では、次のようになります。

    //Connect the NetConnection object
    var netConnection: NetConnection = new NetConnection();
    netConnection.connect("http://localhost:59147/Home/Index");

   //Invoke a call
   log("invoke call TestMethod");
   var responder : Responder = new Responder( handleRemoteCallResult, handleRemoteCallFault);
   netConnection.call('TestMethod', responder, "Test");

これを試してみたところ、アクションにヒットしましたが、リクエストに「TestMethod」と「Test」が見つかりません

ありがとうございました

4

1 に答える 1

2

完全な答えはありませんが、これは最初から役立つ可能性があります。

FluorineFxを使用できます。これは、すべてのAMFのものを実装し、AMFWriter / Reader、AMFDeserializerなどを備えているため、良いスタートです。

using System.Web.Mvc;
using FluorineFx.IO;

public class AMFFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.ContentType == "application/x-amf")
        {
            var stream = filterContext.HttpContext.Request.InputStream;

            var deserializer = new AMFDeserializer(stream);
            var message = deserializer.ReadAMFMessage();

            foreach (var body in message.Bodies) // not foreach, just the first one
            {
                filterContext.ActionParameters["method"] = body.Target;
                filterContext.ActionParameters["args"] = body.Content;
            }

            base.OnActionExecuting(filterContext);
        }
    }
}

[AMFFilter]
[HttpPost]
public ActionResult Index(string method, object[] args)
{
    return View();
}

これは最初の部分にすぎません。バイナリデータなどを返すことは、ある種のカスタムActionResultで処理できますが、ここからasp.netmvcのAMFActionResultを実行する方法を知っていますか?

幸運を。

于 2012-05-13T14:02:39.510 に答える