Javascript 如何使用JS函数在我的视图中显示ViewBag的值?
我想用Javascript在我的视图中显示ViewBag中的数据。这是我的密码 看法Javascript 如何使用JS函数在我的视图中显示ViewBag的值?,javascript,jquery,asp.net-mvc,viewbag,Javascript,Jquery,Asp.net Mvc,Viewbag,我想用Javascript在我的视图中显示ViewBag中的数据。这是我的密码 看法 调用myFunction()时,我得到文本@ViewBag.Test,但不是他的值。如何修复此问题?您需要将获取@ViewBag.Test值的JavaScript放在Razor视图引擎解释的页面中。我的猜测是,目前情况并非如此 如果希望将javascript代码库与视图分开(这是完全合理的),可以使用全局变量: // in the view: var testText = '@ViewBag.Test'; /
调用
myFunction()
时,我得到文本@ViewBag.Test
,但不是他的值。如何修复此问题?您需要将获取@ViewBag.Test
值的JavaScript放在Razor视图引擎解释的页面中。我的猜测是,目前情况并非如此
如果希望将javascript代码库与视图分开(这是完全合理的),可以使用全局变量:
// in the view:
var testText = '@ViewBag.Test';
// in external js
function myFunction() {
$('#test').text(window.testText);
}
或者,您可以使用数据-*
属性:
<span id='test' data-text="@ViewBag.Test"></span>
您需要将获取
@ViewBag.Test
值的JavaScript放在Razor视图引擎解释的页面中。我的猜测是,目前情况并非如此
如果希望将javascript代码库与视图分开(这是完全合理的),可以使用全局变量:
// in the view:
var testText = '@ViewBag.Test';
// in external js
function myFunction() {
$('#test').text(window.testText);
}
或者,您可以使用数据-*
属性:
<span id='test' data-text="@ViewBag.Test"></span>
理想情况下,您应该使用视图模型将数据传递给视图。具有存储要传递的值的属性。例如让我们考虑一个显示客户详细信息的页面,您希望在javascript变量中获得姓氏 你的行动方法
public ActionResult View(int id)
{
var vm=new CustomerViewModel();
vm.LastName="Scott"; // You may read this from any where(DAL/Session etc)
return View(vm);
}
在视图中,它是视图模型的强类型
@model CustomerViewModel
<div>
Some Html content goes here
</div>
<script type="text/javascript">
var lastName="@Model.LastName";
//Now you can use lastName variable
</script>
@model客户服务模型
这里有一些Html内容
var lastName=“@Model.lastName”;
//现在可以使用lastName变量了
编辑:(根据问题编辑)要显示某个事件的内容(例如:单击某个按钮),首先将该值存储在某个位置,然后根据需要读取该值,并将其设置在任何需要的位置
@model CustomerViewModel
<div>
<span id="content"></span>
@Html.HiddenFor(s=>s.LastName)
<input type="button" id="btnShow" value="Show content" />
</div>
<script type="text/javascript">
$(function(){
$("btnShow").click(function(e){
$("#content").html($("#LastName").val());
});
});
</script>
@model客户服务模型
@Html.HiddenFor(s=>s.LastName)
$(函数(){
$(“btnShow”)。单击(函数(e){
$(“#content”).html($(“#LastName”).val());
});
});
理想情况下,您应该使用视图模型将数据传递给视图。具有存储要传递的值的属性。例如让我们考虑一个显示客户详细信息的页面,您希望在javascript变量中获得姓氏
你的行动方法
public ActionResult View(int id)
{
var vm=new CustomerViewModel();
vm.LastName="Scott"; // You may read this from any where(DAL/Session etc)
return View(vm);
}
在视图中,它是视图模型的强类型
@model CustomerViewModel
<div>
Some Html content goes here
</div>
<script type="text/javascript">
var lastName="@Model.LastName";
//Now you can use lastName variable
</script>
@model客户服务模型
这里有一些Html内容
var lastName=“@Model.lastName”;
//现在可以使用lastName变量了
编辑:(根据问题编辑)要显示某个事件的内容(例如:单击某个按钮),首先将该值存储在某个位置,然后根据需要读取该值,并将其设置在任何需要的位置
@model CustomerViewModel
<div>
<span id="content"></span>
@Html.HiddenFor(s=>s.LastName)
<input type="button" id="btnShow" value="Show content" />
</div>
<script type="text/javascript">
$(function(){
$("btnShow").click(function(e){
$("#content").html($("#LastName").val());
});
});
</script>
@model客户服务模型
@Html.HiddenFor(s=>s.LastName)
$(函数(){
$(“btnShow”)。单击(函数(e){
$(“#content”).html($(“#LastName”).val());
});
});
首先确保您的ViewBag.Test
获得值,然后使用div
标记而不是span
并添加以下代码:
<script type="text/javascript">
$(document).ready(function () {
StartRead();
});
function StartRead() {
document.getElementById("test").innerHTML = '@ViewBag.Test';
}
</script>
$(文档).ready(函数(){
星纹();
});
函数StartRead(){
document.getElementById(“test”).innerHTML='@ViewBag.test';
}
首先确保您的ViewBag.Test
获得值,然后使用div
标记而不是span
并添加以下代码:
<script type="text/javascript">
$(document).ready(function () {
StartRead();
});
function StartRead() {
document.getElementById("test").innerHTML = '@ViewBag.Test';
}
</script>
$(文档).ready(函数(){
星纹();
});
函数StartRead(){
document.getElementById(“test”).innerHTML='@ViewBag.test';
}
谢谢您提供这些详细信息。没问题,很乐意帮助谢谢您提供这些详细信息。没问题,很乐意帮助