从Flash到Asp.Net MVC应用程序执行http Post的正确方法是什么?

时间:2009-07-05 04:57:30

标签: asp.net-mvc flash actionscript-3 post http-post

以下是我需要了解的一些事项:

  1. 你为URLRequest做了什么?由于Asp.Net MVC是方法而不是页面

  2. ,因此让我感到困惑
  3. 如何为POST分配参数?

  4. 如何执行URLRequest以完成Http Post?

  5. 有关如何从Flash发布到Asp.Net MVC应用程序的任何信息都会有所帮助。

    谢谢,
    马特

    编辑:我问这个是因为我收到了IO错误和流错误:

    错误#2044:未处理的ioError: text =错误#2032:流错误。网址:http://www.mysite.com/MyController/MyMethod     在Main / postToMySite()

    人们告诉我,这通常意味着网址不存在。我尝试在地址栏中键入:http://www.mysite.com/MyController/MyMethod,它说资源无法找到,但我知道它确实存在,因为它从我的javascript中调用完全正常(我已经测试过了)

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult MyMethod(FormCollection formValues)
        {
            return this.Json("Completed");
        }
    

    注意!!!! 我刚刚测试了一个不同的网址,一个没有[AcceptVerbs(HttpVerbs.Post)]的网址,它没有给我任何错误!知道为什么会这样吗?是否会在没有[AcceptVerbs(HttpVerbs.Post)]的情况下对方法发帖?

4 个答案:

答案 0 :(得分:2)

检查docs link text

中的URLRequest.data属性和URLRequest.method属性

基本上,method属性定义您是在进行HTTP GET还是HTTP POST。放入data属性的对象是将作为HTTP GET中的查询字符串添加的数据,或者作为HTTP POST的消息正文添加的数据。

在URLLoader中使用该URLRequest实例并让你的叔叔失败。此外,如果您使用flex,您还可以查看使用HTTPService component

答案 1 :(得分:1)

您无需为ASP.NET MVC做任何特殊操作。

答案 2 :(得分:0)

你如何从flash发送到常规asp.net页面?它应该没有任何不同。

修改:如果您在方法上使用[AcceptVerbs(HttpVerbs.Post)],则无法通过在浏览器中输入网址来访问该方法。我认为大多数情况下,你也有一个GET方法重载同一个Action名称,如下所示:

//
// GET: /MyController/MyMethod

public ActionResult MyMethod()
{
    return View();
}

//
// POST: /MyController/MyMethod

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MyMethod(FormCollection formValues)
{
    return this.Json("Completed");
}

如果你没有响应GET的重载方法,那么http://www.mysite.com/MyController/MyMethod将无法作为GET工作,这就是当你在浏览器的地址栏中输入网址时会发生的情况。

是的,对没有[AcceptVerbs(HttpVerbs.Post)]的方法执行POST仍然有效,但该属性是为了防止用其他动词命中该方法,因为通常响应POST操作的方法应该只响应POST动作。

答案 3 :(得分:0)

您可能会尝试使用Flash中的NetConnection类来向服务器发送POST。您可能需要设置某种.NET AMF内容才能使其正常工作,但是一旦完成设置,就可以非常轻松地来回传递数据。

相关问题