Создание архитектуры RESTful для связи между веб-приложением ASP.NET и приложением MVC 3 с использованием JSON - PullRequest
2 голосов
/ 22 декабря 2011

Мне нужно взять поля GET из моего веб-приложения asp.net (имя и фамилия).Он должен отправлять эти данные из веб-приложения asp.net с помощью JSON в приложение MVC 3.Приложение MVC 3 связывается с базой данных, получает значения и должно сериализовать их в объект json и POST для внешнего интерфейса (веб-приложение ASP.NET).Может кто-нибудь объяснить с помощью примера кода, как я мог бы сделать это?

1 Ответ

4 голосов
/ 22 декабря 2011

Вы можете использовать класс WebClient .Позволяет отправлять HTTP-запросы любому веб-приложению.Что касается части JSON, вам понадобится сериализатор JSON.Вы можете использовать встроенный класс JavaScriptSerializer или стороннее устройство, например Json.NET .

. Итак, давайте предположим, что в вашем ASP есть следующее действие контроллераПриложение .NET MVC 3, которое вы хотите вызвать:

[HttpPost]
public ActionResult Foo(Bar bar)
{
    ...
    return Json(new 
    {
        status = "OK"
    });
}

, где класс Bar содержит некоторые свойства (могут быть простых или сложных типов):

public class Bar
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Теперь вы можетевызовите его следующим образом со стороны клиента:

using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/json";
    var serializer = new JavaScriptSerializer();
    var json = serializer.Serialize(new 
    {
        firstName = "first",
        lastName = "last"
    });
    var resultJson = client.UploadString("http://example.com/foo", json);
    var result = serializer.Deserialize<Result>(resultJson);
}

, где вы определяете класс Result для соответствия структуре JSON, возвращаемой приложением:

public class Result
{
    public string Status { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...