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

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
    }
});
于 2011-10-25T04:29:38.443 に答える