2010-02-05 64 views
1

我想寫一個返回Javascript的操作方法。 如何使用MVC控制器運行JavaScript?Javascript in Controller

我嘗試了以下,但它無法正常工作。它顯示文件下載 - 安全警告?

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult About(clsABC param) 
    { 
     string message = "Hello! World."; 
     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
     sb.Append("<script type = 'text/javascript'>"); 
     sb.Append("window.onload=function(){"); 
     sb.Append("alert('"); 
     sb.Append(message); 
     sb.Append("')};"); 
     sb.Append("</script>");    
     return JavaScript(sb.ToString()); 
    } 

對此問題的任何解決方案?

感謝, 卡皮爾

+0

不要嘗試調用通過Ajax的行動? – 2010-02-05 08:24:21

回答

1

可以加載並與jQuery getScript method執行JavaScript。在這種情況下,您只需編寫想要在您的動作中執行的腳本並使用jQuery調用它。

$.getScript("/Controller/Action", function(){ 
    alert('Script was loaded'); 
    }); 
}); 

如果加載按鈕點擊腳本不要忘記調用preventDefault方法是這樣的。這將阻止下載文件對話框在您的案例中顯示。

$('selector here').click(function(e){ 
    e.preventDefault(); 
    ...Do your stuff... 
    }    
); 
0

您可以閱讀post

ASP.NET MVC框架支持多種類型的操作結果包括:

  1. 的ViewResult - 代表HTML和標記。
  2. EmptyResult - 表示無結果。
  3. RedirectResult - 表示重定向到一個新的URL。
  4. JsonResult - 表示可以在AJAX應用程序中使用的JavaScript對象表示法結果。

5. JavaScriptResult - 表示JavaScript腳本。

  1. ContentResult - 表示文本結果。
  2. FileContentResult - 表示可下載的文件(包含二進制內容)。
  3. FilePathResult - 表示可下載的文件(帶有路徑)。
  4. FileStreamResult - 表示可下載的文件(帶有文件流)。

希望它可以幫助