Как получить доступ к ViewBag из JS
мои попытки методов.
глядя на JS через браузер,@ViewBag.CC
просто пусто... (отсутствует)
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();
5 ответов
Если вы используете шаблон Razor engine, выполните следующие действия
на ваш взгляд написать :
<script> var myJsVariable = '@ViewBag.MyVariable' </script>
обновление: Более подходящим подходом является определение набора конфигурации в мастер-макете, например, базовый url, ключ API facebook, базовый URL Amazon S3 и т. д...``
<head>
<script>
var AppConfig = @Html.Raw(Json.Encode(new {
baseUrl: Url.Content("~"),
fbApi: "get it from db",
awsUrl: "get it from db"
}));
</script>
</head>
и вы можете использовать его в своем коде JavaScript следующим образом:
<script>
myProduct.fullUrl = AppConfig.awsUrl + myProduct.path;
alert(myProduct.fullUrl);
</script>
<script type="text/javascript">
$(document).ready(function() {
showWarning('@ViewBag.Message');
});
</script>
вы можете использовать ViewBag.PropertyName в javascript, как это.
ViewBag
is сервер код.Javascript
и стороне клиента код.
нельзя действительно соединить их.
вы можете сделать что-то вроде этого:
var x = $('#' + '@(ViewBag.CC)').val();
но он будет проанализирован на сервере, поэтому вы на самом деле не подключали их.
вы можете достичь решения, сделав это:
JavaScript:
var myValue = document.getElementById("@(ViewBag.CC)").value;
или если вы хотите использовать jQuery
, тогда:
jQuery
var myValue = $('#' + '@(ViewBag.CC)').val();