在ASP.NET中,常见的做法是在控制器(Controller)的动作方法中返回视图(View)或Web响应(Web Response)。但是,有时候我们需要同时返回Web响应和视图,例如,当我们在创建资源(POST请求)时,需要返回201响应码和创建后的资源详情视图。
实现这种需求最简单的方法是通过在控制器动作方法中使用以下代码:
public ActionResult MyActionMethod()
{
// 在此处执行操作
// 创建资源后返回资源详情视图和201响应码
var viewModel = new MyViewModel();
return new ContentResult { Content = JsonConvert.SerializeObject(viewModel), ContentType = "application/json", StatusCode = 201 };
}
在上述代码中,我们首先执行操作。接着,利用Newtonsoft.Json库将ViewModel序列化成JSON格式的字符串,并根据HTTP规范返回ContentResult对象。ContentResult对象包含JSON格式的字符串、MIME类型和状态码。这样就可以同时返回Web响应和视图。