以下是我需要了解的一些事项:
你为URLRequest做了什么?由于Asp.Net MVC是方法而不是页面
如何为POST分配参数?
如何执行URLRequest以完成Http Post?
有关如何从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)]
的情况下对方法发帖?
答案 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内容才能使其正常工作,但是一旦完成设置,就可以非常轻松地来回传递数据。