По многим причинам вам лучше поместить большинство, если не все ваши JS, в отдельные файлы JS (чтобы вы могли воспользоваться преимуществами повторного использования, минимизации, оптимизации браузера, сетей доставки контента и т. Д.)
Для считывания результата кода бритвы на стороне сервера в файлы JS используйте один из следующих методов:
1) Поместите свой бритвенный код в переменную javascript в представлении (не проверенный код)
<script type="text/javascript">
if(!MyGlobalVariables){
MyGlobalVariables = {};
}
MyGlobalVariables.IndexUrl = "@Url.Action("Index")";
</script>
2) Используйте пользовательский атрибут (предпочтительно с префиксом данных - как предложено в HTML 5 spec ). См. Соответствующее обсуждение здесь: Можно ли добавить пользовательский атрибут в тег HTML?
<div data-index-url="@Url.Action("Index")"></div>
Затем используйте $ (this) .attr ("data-index-url") в jQuery для доступа к визуализированной разметке бритвы.
3) Поместите C # в скрытые поля ввода на вашем виде и прочитайте скрытый ввод в вашем файле JS.
<input id="indexUrl" type="hidden" value="@Url.Action("Index")" />
Чтобы прочитать это в jQuery, вы должны использовать $ ("# indexUrl"). Val ()