我想在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