How to Access ViewData in javascript

2019-02-07 10:04发布

I am having a problem accessing the ViewData object through javascript.

I have set the ViewData object on the controller and on document.ready event of the view i am trying to see the contents of that same ViewData object like so:

     var test = <%= ViewData["NAME"].ToString() %>;
     alert(test);

I don't get an alert message after this and none of my script after this statement will run. I am assuming this script is invalid thus killing everything afterwards. I have tried a few different variations of this same script without any luck.

What am i missing here?

Thanks in advance, Billy

2条回答
霸刀☆藐视天下
2楼-- · 2019-02-07 10:34

Try adding some quotes around the output:

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);

Edit:

I notice you're using NAME for the key; could this name ever have a single quote in it? If it's possible that any value will ever contain one, you will want something like this instead so your page doesn't break again (although technically this seems to be more of a job for the controller or model):

var test = '<%= ViewData["NAME"].ToString().Replace("'", "\\'") %>';
alert(test);
查看更多
等我变得足够好
3楼-- · 2019-02-07 10:46

try

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);

(notice the quotes around <%= %>)

查看更多
登录 后发表回答