Я обычно пишу свой javascript в отдельных представлениях (только с кодом js) и использую свой собственный результат действия для его рендеринга. Таким образом, я могу использовать преимущества c # на стороне сервера и при необходимости использовать модель, которая будет включена в качестве внешнего js-файла в браузере (с соответствующим кэшированием). Результат действия, который я использую, можно найти здесь: http://codepaste.net/p2s3po
Обновление
Вы можете использовать результат действия следующим образом:
public ActionResult JsFile() {
ViewData.Model = //Create model if you want one;
return new JavascriptFileResult(true)
{
TempData = TempData,
ViewData = ViewData
};
}
Тогда вы просто относитесь к нему, как к обычному представлению (но пишите только javascript в представлении). Вы также можете выбрать любое количество параметров.
Вы можете включить его так:
<script type="text/javascript" src="<%=Url.Action("JsFile", "ControllerName")%>"></script>