I usually write my javascript in separate views (with only js code) and use my own action result to render it. This way I can take advantage of c# on the server side and I can use a model if needed and it will be included as a external js file in the browser (with appropriate caching). The action result I use can be found here: http://codepaste.net/p2s3po
Update
You can use the action result like this from your action:
public ActionResult JsFile() {
ViewData.Model = //Create model if you want one;
return new JavascriptFileResult(true)
{
TempData = TempData,
ViewData = ViewData
};
}
Then you just treat it as if it was a normal view (but only write javascript in the view). You can take any number of parameters as well of course.
You can include it like this:
<script type="text/javascript" src="<%=Url.Action("JsFile", "ControllerName")%>"></script>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…