一連のサーバーからレポートをアップロードできるようにするために、ASP.NETMVC3のRESTfulWebサービスを作成しています。新しいレポートが作成されたら、クライアントアプリにPUTを実行してもらいたい
レポートのコンテンツをリクエストの本文でXMLとして渡します。
私の質問は、コントローラーでレポートのコンテンツにアクセスするにはどうすればよいですか?HttpContext.Requestオブジェクトのどこかで利用できると思いますが、単体テストができない(?)ため、コントローラーからアクセスするのは気が進まないです。コンテンツを1つ以上のパラメーターとしてコントローラーメソッドに渡すことができるようにルーティングを微調整することは可能ですか?結果はRESTfulである必要があります。つまり、上記のようなURLにPUTまたはPOSTする必要があります。
現在、私のルーティングは次のとおりです。
routes.MapRoute(
"SaveReport",
"Servers/{serverName}/Reports/{reportTime",
new { controller = "Reports", action = "Put" },
new { httpMethod = new HttpMethodConstraint("PUT") });
これを変更して、コンテンツをHTTPリクエスト本文からコントローラーメソッドに渡す方法はありますか?コントローラの方法は現在次のとおりです。
public class ReportsController : Controller
{
[HttpPut]
public ActionResult Put(string serverName, string reportTime)
{
// Code here to decode and save the report
}
}
私がURLにPUTしようとしているオブジェクトは次のとおりです。
public class Report
{
public int SuccessCount { get; set; }
public int FailureOneCount { get; set; }
public int FailureTwoCount { get; set; }
// Other stuff
}
この質問は似ていますが、答えはありません。前もって感謝します