コンソール アプリケーションから MVC3 コントローラー アクション (JsonResult) を呼び出しています。呼び出しを行うために、System.Net.Http.HttpClient と PostAsJsonAsync メソッドを使用しています。
PostAsJsonAsync メソッドでは、小さな poco インスタンスを渡しています。
それはすべて、1つのことを除けばうまく機能します。
私の問題は、MVC3 コントローラー アクションの呼び出しで poco インスタンスを取得できないことです。 誰でもこれを行う方法を教えてもらえますか?
コードは次のとおりです。
コンソール アプリケーションでコードを呼び出す:
var client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:50285/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var user = new HashedUser { UserName = "userName", PasswordHash = "abcdef".GetHashCode() };
var response = client.PostAsJsonAsync("app/test", user).Result;
var txt = response.Content.ReadAsAsync<string>().Result;
MVC3 プロジェクトでコードを受け取る
public class AppController : Controller
{
public JsonResult Test(HashedUser json)
{
// Problem: json is always a new instance
// of HashedUser and not the one passed in
// from the call to this controller action.
return Json("qqq ppp 777 888" + json.UserName);
}
}
public class HashedUser
{
public string UserName { get; set; }
public int PasswordHash { get; set; }
}