我想在ASP .NET MVC應用程序中本地化客戶端Javascript。我已經解決了這個問題,我想從視圖頁面返回一個JavaScript對象。如何返回JavaScript內容而不包含視圖中的腳本標記?
的想法非常相似,這裏所描述的那樣: http://blogs.msdn.com/b/robj/archive/2009/03/12/localized-javascript-resources-with-mvc.aspx
目前還不清楚我從博客文章有什麼看法(或局部視圖?)的模樣。我想這樣做:
<script type = "text/javascript">
ForumsRes =
{
prompt_clearAbuseReason: <%= AntiXss.JavaScriptEncode(Resource.prompt_clearAbuseReason) %>,
prompt_deleteReason: <%= AntiXss.JavaScriptEncode(Resource.prompt_deleteReason) %>,
prompt_pageExit: <%= AntiXss.JavaScriptEncode(Resource.prompt_pageExit) %>,
prompt_reportAbuseReason: <%= AntiXss.JavaScriptEncode(Resource.prompt_reportAbuseReason) %>,
prompt_stickyUntil: <%= AntiXss.JavaScriptEncode(Resource.prompt_stickyUntil) %>,
prompt_undeleteReason: <%= AntiXss.JavaScriptEncode(Resource.prompt_undeleteReason) %>,
rte_alreadyOpen: <%= AntiXss.JavaScriptEncode(Resource.rte_alreadyOpen) %>}
</script>
內的視圖定義。通過在.cshtml文件中實際使用script標籤,我可以對.cshtml文件進行外部引用,並且我將獲得intellisense(根據http://weblogs.asp.net/scottgu/archive/2007/06/21/vs-2008-javascript-intellisense.aspx)。
不過,我想從另一個觀點引用JavaScript(真的.cshtml文件)是這樣的:
<script type="text/javascript" src="@Url.Content("~/res/MyResources")"></script>
其中RES/URL爲MyResources將映射(通過自定義路線)到控制器調用提供JavaScript的視圖(或部分視圖)。問題是,我認爲,我在視圖中返回的內容包括標籤。我在設計時想要這個,所以我可以得到intellisense。但是當javascript在運行時返回時,我想用腳本標記返回視圖(或部分視圖)的內容。
正如你可以告訴,我在ASP .NET MVC非常綠色,所以希望我說的有道理。有沒有辦法去掉控制器內的標籤?我想我可以在客戶端做一些事情(也許使用JQuery),但我寧願有什麼服務是一個香草JavaScript外部文件。
謝謝保羅!我敢肯定,關於ContentType的提示將證明是有用的。到目前爲止,我的控制器看起來像這樣: – Notre 2012-02-06 22:39:30
ATSYMBOL { Layout = null; } ATSYMBOLlif(假){ <腳本類型= 「文本/ JavaScript的」> } 變種externalFunc =函數(參數){ 警報( 「參數:」 +參數); }; ATSYMBOLif(false) { } – Notre 2012-02-06 22:49:43
我實際上在設計時(在文件頂部預期關閉)出錯)。在運行時,腳本不會被加載...對這些註釋的格式化抱歉;我不知道如何輸入代碼塊或換行符:( – Notre 2012-02-06 22:51:41