My attempted methods.
Looking at the JS via browser, the @ViewBag.CC is just blank… (missing)
var c = "#" + "@ViewBag.CC";
var d = $("#" + "@ViewBag.CC").value;
var e = $("#" + "@ViewBag.CC").val();
var c = "@ViewBag.CC";
var d = $("@ViewBag.CC").value;
var e = $("@ViewBag.CC").val();
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
if you are using razor engine template then do the following
in your view write :
<script> var myJsVariable = '@ViewBag.MyVariable' </script>
UPDATE:
A more appropriate approach is to define a set of configuration on the master layout for example, base url, facebook API Key, Amazon S3 base URL, etc …“`
<head>
<script>
var AppConfig = @Html.Raw(Json.Encode(new {
baseUrl: Url.Content("~"),
fbApi: "get it from db",
awsUrl: "get it from db"
}));
</script>
</head>
And you can use it in your JavaScript code as follow:
<script> myProduct.fullUrl = AppConfig.awsUrl + myProduct.path; alert(myProduct.fullUrl); </script>
Method 2
try: var cc = @Html.Raw(Json.Encode(ViewBag.CC)
Method 3
<script type="text/javascript">
$(document).ready(function() {
showWarning('@ViewBag.Message');
});
</script>
You can use ViewBag.PropertyName in javascript like this.
Method 4
ViewBag is server side code.
Javascript is client side code.
You can’t really connect them.
You can do something like this:
var x = $('#' + '@(ViewBag.CC)').val();
But it will get parsed on the server, so you didn’t really connect them.
Method 5
You can achieve the solution, by doing this:
JavaScript:
var myValue = document.getElementById("@(ViewBag.CC)").value;
or if you want to use jQuery, then:
jQuery
var myValue = $('#' + '@(ViewBag.CC)').val();
Method 6
None of the existing solutions worked for me. Here’s another solution I found that did work:
Controller:
TempData["SuccessMessage"] = "your message here";
View:
let msg = '@TempData["SuccessMessage"]';
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0