Javascript – Using Inline C# inside Javascript File in MVC Framework

asp.net-mvcjavascript

I am trying to get inline C# to work in my JavaScript files using the MVC Framework. I made this little test code up.

$(document).ready(function() {
    alert(<%= ViewData["Message"] %>);
});

When this code is used inside of the view it works perfectly. When I get outside of my aspx view and try this in a JavaScript file I get illegal XML character. I figure this is by design in the MVC Framework but I haven't been able to find any material on this on the web.

Has anyone gotten inline C# to work in JavaScript files using the MVC Framework?

Best Answer

As others have said, the C# is not being processed by the server.

A possible solution would be to have a separate view that uses the same model and outputs the JavaScript, then reference that view in your <script type="text/javascript" src="yourJSview.aspx"></script>.

Added as per SLaks' answer:

Set the content-type to text/javascript, and put your JavaScript source directly below the <%@ Page directive (without a <script> tag).

Beware that you won't get any IntelliSense for it in VS.