0

我有一个控制器方法:

public ActionResult(int audioId)
{
    byte[] bytes = getAudio(audioId);
    if (bytes != null) 
    {
        return new FileContentResult(bytes, "audio/wav");
    }
    else
    {
        return Json(new { success = false });
    }
}

现在在我看来,如果是内容,我希望它在新窗口中打开,它会启动任何插件来播放它(如果有的话)。但如果它不存在,我希望它留在页面上并弹出警告。

我该怎么做,还是我以完全错误的方式解决这个问题?

4

1 回答 1

1

看起来您正在使用 AJAX 发出请求,因为您正在返回 Json 结果。

每个服务器响应,独立于服务器端技术,都有一个“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
    }
});
于 2011-10-25T04:29:38.443 回答