[英]How do I access ViewBag from 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();
如果您使用的是 razor 引擎模板,請執行以下操作
在你看來寫:
<script> var myJsVariable = '@ViewBag.MyVariable' </script>
更新:更合適的方法是在主布局上定義一組配置,例如 base url、facebook API Key、Amazon S3 base URL 等...```
<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>
嘗試: var cc = @Html.Raw(Json.Encode(ViewBag.CC)
<script type="text/javascript">
$(document).ready(function() {
showWarning('@ViewBag.Message');
});
</script>
您可以像這樣在 javascript 中使用 ViewBag.PropertyName。
ViewBag
是服務器端代碼。
Javascript
是客戶端代碼。
你無法真正將它們聯系起來。
你可以這樣做:
var x = $('#' + '@(ViewBag.CC)').val();
但它會在服務器上被解析,所以你並沒有真正連接它們。
您可以通過這樣做來實現解決方案:
JavaScript:
var myValue = document.getElementById("@(ViewBag.CC)").value;
或者如果你想使用jQuery
,那么:
jQuery
var myValue = $('#' + '@(ViewBag.CC)').val();
現有的解決方案都不適合我。 這是我發現確實有效的另一個解決方案:
Controller:
TempData["SuccessMessage"] = "your message here";
看法:
let msg = '@TempData["SuccessMessage"]';
試試這個:
HTML 中的任意位置: <input hidden value=@ViewBag.CC id="CC_id" />
在 JS 中: var CC= document.getElementById("CC_id").value.toString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.