Я пытаюсь локализовать Javascript на стороне клиента в приложении ASP .NET MVC. Я остановился на том, что хочу вернуть объект 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>
в пределах определения представления. Имея тег script в самом файле .cshtml, я могу сделать внешнюю ссылку на файл .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>
где URL res / MyResources будет отображаться (через пользовательский маршрут) на контроллер, который вызывает представление (или частичное представление), которое обслуживает JavaScript. Проблема, я думаю, в том, что я возвращаю в представлении теги. Я хочу это во время разработки, чтобы я мог получить intellisense. Но когда javascript возвращается во время выполнения, я хочу вернуть содержимое представления (или частичного представления) со скриптами тегов script.
Как вы, вероятно, можете сказать, я довольно зеленый в ASP .NET MVC, так что, надеюсь, то, что я сказал, имеет смысл. Есть ли способ убрать метки внутри контроллера? Я полагаю, что я мог бы что-то сделать на стороне клиента (возможно, с помощью JQuery), но я бы предпочел, чтобы все получалось как внешний файл vanilla javascript.