Tuesday, September 23, 2014

Uncaught SyntaxError: Unexpected token; ASP.NET MVC razor in javascript

To be sure wrap ASP.NET MVC razor data in quote, otherwise you might get Uncaught SyntaxError: Unexpected token;

The code I had:

(function () {
        try{
            var __navParam = '@navParam';
            if (typeof __navParam === 'undefined' || __navParam === '') _navParam = '';
            else //use Json.parse to convert string to Json
                _navParam = JSON.parse(@Html.Raw(navParam));

            if (typeof _navParam === 'undefined' || _navParam === '') { 
            $('.sidebar').hide();
            $('#detailContent').removeClass('contentDetail');            
        }
        }catch(e) {
            $('.sidebar').hide();
            $('#detailContent').removeClass('contentDetail');       
        }
    })();

I also added this in the razor code for json serialization with json formatted data from ViewData:
    var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
    var strNav = Convert.ToString(ViewData["NavParam"]);
    var navParam = string.IsNullOrEmpty(strNav)? string.Empty : jss.Serialize(strNav);

No comments:

Post a Comment