Я хочу создать HTTP-пост, который будет отправлять данные и автоматически связывать данные в модель. У меня проблема с тем, чтобы заставить это работать, поскольку модель появляется пустая. Я использую MVC 2.
Мой контроллер
[HttpPost]
public JsonResult Authenticate(AuthenticateRequest request)
{
//...do stuff
}
и вот как я строю запрос.
private static string Url(string action, string controller)
{
return String.Format("{0}/{1}/{2}", Settings.Default.MobileServiceUrl, controller, action);
}
public static string Post(string action, string controller, NameValueCollection parameters)
{
string url = Url(action, controller);
using (WebClient client = new WebClient())
{
NameValueCollection fields = new NameValueCollection();
client.UploadValues(url, parameters);
byte[] respBytes = client.UploadValues(url, fields);
return client.Encoding.GetString(respBytes);
}
}
Вот класс модели
public class AuthenticateRequest
{
public string SiteAbbreviation { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string AdminPassword { get; set; }
}
вот пример данных
NameValueCollection fields = new NameValueCollection();
fields.Add("SiteAbbreviation", "ABCD");
fields.Add("Username", "username");
fields.Add("Password", "password");
fields.Add("AdminPassword", "password");
var json = HttpRequestHelper.Post("Authenticate", "Account", fields);
var result = JsonConvert.DeserializeObject<AuthenticateRequest>(json);
EDIT:
Если вам интересно, почему я это делаю, мое приложение mvc - это API для отдыха, который возвращает json для всего. Я пытаюсь создать тестовый проект для проверки методов моего контроллера.