我正在创建一个 ASP.NET MVC3 RESTful Web 服务,以允许从一组服务器上传报告。创建新报告时,我希望客户端应用程序执行 PUT 到
在请求的正文中将报告的内容作为 XML 传递。
我的问题是:如何在我的控制器中访问报告的内容?我想它在 HttpContext.Request 对象中的某处可用,但我不愿意从我的控制器访问它,因为不可能(?)对其进行单元测试。是否可以调整路由以允许将内容作为一个或多个参数传递到控制器方法中?结果需要是 RESTful 的,即它必须 PUT 或 POST 到上述 URL。
目前我的路线是:
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
}
}
我试图 PUT 到 URL 的对象是:
public class Report
{
public int SuccessCount { get; set; }
public int FailureOneCount { get; set; }
public int FailureTwoCount { get; set; }
// Other stuff
}
这个问题看起来很相似,但没有任何答案。提前致谢