如何根据控制器的ActionResult类型处理控制器操作
本文关键字:控制器 类型 处理 操作 ActionResult 何根 | 更新日期: 2023-09-27 18:00:13
我有一个控制器方法:
public ActionResult(int audioId)
{
byte[] bytes = getAudio(audioId);
if (bytes != null)
{
return new FileContentResult(bytes, "audio/wav");
}
else
{
return Json(new { success = false });
}
}
现在,在我看来,如果它是内容,我希望它在一个新窗口中打开,它将启动任何插件来播放它(如果可用)。但如果它不存在,我希望它留在页面上并弹出警告。
我该怎么做,还是我以完全错误的方式处理这个问题?
由于返回Json结果,所以看起来您正在使用AJAX来发出请求。
独立于服务器端技术的每个服务器响应都有一个"Content-Type"标头,您可以查询它以获得所需的结果。
例如,如果您使用jQuery进行请求,您可以执行以下操作:
$.get('PLACE_URL_HERE', function (data, status, jqXHR) {
var type = jqXHR.getResponseHeader('Content-Type');
if (type === 'application/json')
{
// Show warning
}
else if (type == 'audio/wav')
{
// Open new window
}
});