ASP.NET MVC-2如何从其他网站接收POST?

时间:2010-07-14 09:14:59

标签: c# asp.net-mvc-2 post

如果另一个网站正在向我的ASP.NET MVC 2站点发布POST,我该如何捕获它?我是否需要对路线做任何事情?

例如另一个网站这样做:

string url = "https://mvc2-site.com/TestReceive";  // that's my site's controller action

NameValueCollection inputs = new NameValueCollection();
inputs.Add("SessionId", "11111");
System.Net.WebClient Client = new WebClient();
byte[] result = Client.UploadValues(url, inputs);

如何在我的网站上收到该帖子?我试过了:

public ActionResult TestReceive(FormCollection fc) {} // doesn't get hit

public ActionResult TestReceive(string SessionId) {} // method gets hit but session id is null

public ActionResult TestReceive() 
{
    var param = ControllerContext.RouteData.Values["parameter"].ToString(); // Values["parameter"] is null
} 

我不控制其他网站,它必须是POST(不是网络服务或其他任何东西)

作为另一种扭曲,他们将POST约10个变量,但有些是可选的,因此它们可能不在POST数据中。

1 个答案:

答案 0 :(得分:1)

[HttpPost]
public ActionResult TestReceive(string sessionId) 
{
    ...
}

此外,由于url中没有指定控制器,因此应确保包含此操作的控制器是路由中的默认控制器。