微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何根据其ActionResult类型处理控制器动作?

如何解决如何根据其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 举报,一经查实,本站将立刻删除。