ASP.NET MVC-2 Как вы можете получить POST с другого сайта? - PullRequest
1 голос
/ 14 июля 2010

Если другой сайт делает POST для моего сайта ASP.NET MVC 2, как я могу его перехватить? Нужно ли что-нибудь делать с маршрутами?

Например, другой сайт делает это:

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);

Как мне получить этот POST на моем сайте? Я пробовал:

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 Ответ

1 голос
/ 14 июля 2010
[HttpPost]
public ActionResult TestReceive(string sessionId) 
{
    ...
}

Кроме того, поскольку в URL не указан контроллер, следует убедиться, что контроллер, содержащий это действие, является контроллером по умолчанию в маршрутах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...