2010-04-03 210 views
6

大家好老鄉程序員從asp.net的MVC控制器

我想對每個MVC一個單獨的js文件設置我在我的應用程序

/Controllers/ 
    -TestController.cs 
/Models/ 
/Views/ 
    /Test/ 
     -Index.aspx 
     -script.js 

而且我返回一個js文件D類似於通過

<script type="text/javascript" src="<%=UriHelper.GetBaseUrl()%>/Test/Js"></script> 

或者把它變得更容易,當我在瀏覽器中調用http://localhost/Test/Js,它會告訴我的script.js文件

包括在Index.aspx的js的

如何在Controller中編寫Action?我知道,這必須返回文件的方法來進行,但我還沒有成功地創建方法:(

+0

發佈您嘗試過的代碼,我們會看看您是否和/或哪裏出錯。 – Lazarus 2010-04-03 17:24:23

回答

14

如何:

public FileContentResult Js() 
    { 
     return File(System.IO.File.ReadAllBytes(Server.MapPath("/Test/script.js")), "text/javascript"); 
    } 

我補充一點,你真的應該有你的內容文件夾下的腳本作爲MVC是所有關於約定上面的配置,並試圖通過你的意見,你正在打破慣例把你的腳本。

+1

對於約定+1。這就是MVC是關於 – Flexo 2010-04-03 17:38:44

+0

+1的偉大暱稱! ;) – Lazarus 2010-04-03 17:43:35

+0

除了奇怪的情況,您想要將安全驗證添加到依賴於用戶的身份驗證配置文件/成員資格ID的返回文件。在這種情況下,慣例會吸引它。 – FlavorScape 2013-04-10 16:12:42

1

兩個選項:

  • 返回的JavaScript是使用JavaScript的ActionResult
  • 返回一個字符串的JavaScript文件作爲文件下載可下載文件的ActionResult

HTH