Can someone format the code below so that I can set srcript variables with c# code using razor?
The below does not work, i've got it that way to make is easy for someone to help.
@{int proID = 123; int nonProID = 456;} <script type="text/javascript"> @{ <text> var nonID =@nonProID; var proID= @proID; window.nonID = @nonProID; window.proID=@proID; </text> } </script>
I am getting a design time error
To declare a variable in the View using Razor syntax, we need to first create a code block by using @{ and } and then we can use the same syntax we use in the C#. In the above code, notice that we have created the Code block and then start writing C# syntax to declare and assign the variables.
Calling JavaScript Function from Razor View To include a JavaScript function, it is as simple as include a <script> tag and define the function inside the script block. Now, to call the function, add an onclick event on the employee name hyperlink and call the function.
You should take a look at the output that your razor page is resulting. Actually, you need to know what is executed by server-side
and client-side
. Try this:
@{ int proID = 123; int nonProID = 456; } <script> var nonID = @nonProID; var proID = @proID; window.nonID = @nonProID; window.proID = @proID; </script>
The output should be like this:
Depending what version of Visual Studio you are using, it point some highlights in the design-time for views with razor.
Since razor syntax errors can become problematic while you're working on the view, I totally get why you'd want to avoid them. Here's a couple other options.
<script type="text/javascript"> // @Model.Count is an int var count = '@Model.Count'; var countInt = parseInt('@Model.ActiveLocsCount'); </script>
The quotes act as delimiters, so the razor parser is happy. But of course your C# int becomes a JS string in the first statement. For purists, the second option might be better.
If somebody has a better way of doing this without the razor syntax errors, in particular maintaining the type of the var, I'd love to see it!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With