2011-06-22 27 views
0

我有一個控制器方法:如何根據其ActionResult類型處理控制器操作?

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

現在,如果它的內容,我希望它在新窗口中打開,它會啓動任何插件來播放(如果可用) 。但如果它不存在,我希望它保留在頁面上並彈出警告。

我該如何去做,或者我以完全錯誤的方式接近這個問題?

+0

你有沒有解決這個問題?我也有同樣的問題。 – Niklas

回答

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 
    } 
}); 
相關問題