0

次のシナリオがあります。

私はWebサービスエリアと2つのコントローラーを持っています

  1. ユーザーコントローラー -[HTTPPost]属性付きのアクションに名前を付けるとGetUserProfile(string tokenkey)、JSON が返されます
  2. TestWebService コントローラー - GetUserProfile(string tokenkey)*sameという名前のアクションを持つ

今、私はコントローラーから呼び出したいUser->GetUserProfileTestWebService思います.JSON結果をTestWebServiceコントローラーのアクションで使用したいです.

*注:よりわかりやすくするために:-TestWebServiceコントローラーはWebサービスをテストするためのもので、私は使用していますASP.net MVC 4

RedirectToAction結果を取得して投稿したいので、私には役に立ちません。

他のアイデアはありますか、それとも間違った方向に進んでいますか?

***誰かが正しいものを見つけたら、私の質問のタイトルを編集してください

4

1 に答える 1

0

このコントローラー アクションに HTTP 要求を送信できます。これは、 WebClientクラスまたは.NET 4.5 で導入された新しいHttpClientクラスのいずれかを使用して簡単に実行できます。

例えば:

public ActionResult GetUserProfile(string tokenkey)
{
    using (var client = new HttpClient())
    {
        var requestUri = Url.Action("GetUserProfile", "User", new { area = "WebService" }, "http");
        var content = new FormUrlEncodedContent(
            new[] { new KeyValuePair<string, string>("tokenkey", tokenkey) }
        );
        var response = client.PostAsync(requestUri, content);
        response.Result.EnsureSuccessStatusCode();
        MyViewModel model = response.Result.Content.ReadAsAsync<MyViewModel>().Result;
    }

    ....
}
于 2012-09-10T07:14:18.573 に答える