如果另一个网站正在向我的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数据中。
答案 0 :(得分:1)
[HttpPost]
public ActionResult TestReceive(string sessionId)
{
...
}
此外,由于url中没有指定控制器,因此应确保包含此操作的控制器是路由中的默认控制器。