如何解决如何根据其ActionResult类型处理控制器动作?
| 我有一个控制器方法: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
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。