如何在脚本标记中获取模型或Viewbag变量
Vs’12 asp.net C#MVC4 – Int.Appl.Template EF Code First
这是我非常简单的Script
$('#Add').click(function (e) { var val = @ViewBag.ForSection; alert(val); });
根据例子,我想在我的script
设置一个变量或者使用一个Viewbag.
或Model.
我无法在以下任何论坛中找到答案: StckTrace1 , StackTraceBetterAnswer
我试过的其他事情:
var model = @Html.Raw(Json.Encode(Model)) alert(model.Sections); alert(@ViewBag.ForSection);
您可以这样做,提供Json或任何其他变量:
1)例如,在控制器中,您可以使用Json.NET
为ViewBag
提供Json
:
ViewBag.Number = 10; ViewBag.FooObj = JsonConvert.SerializeObject(new Foo { Text = "Im a foo." });
2)在View
,将这样的脚本放在页面底部。
你有什么应该工作。 这取决于您正在设置的数据类型,即如果它是一个字符串值,您需要确保它在引号中,例如
var val = '@ViewBag.ForSection';
如果它是一个整数,你需要将其解析为一个ie
var val = parseInt(@ViewBag.ForSection);
试试这个方法
谢谢
使用单引号( '
):
var val = '@ViewBag.ForSection'; alert(val);
当你这样做的时候
var model = @Html.Raw(Json.Encode(Model));
您可能正在获取JSON字符串,而不是JavaScript对象。
您需要将其解析为一个对象:
var model = JSON.parse(model); //or $.parseJSON() since if jQuery is included console.log(model.Sections);
- 如何使用带有validation的jQuery在Modal中创建.NET MVC表单
- 使用Json将带有两个对象的viewmodel传递给控制器
- jQuery – Url.Action LOCAL机器路径问题
- jQuery UI Dialog调用操作,返回MVC 3中的HttpContect响应流
- JQGrid,根据条件更改行背景颜色
- 在jquery选项卡中加载flot图表解决方法并不能完全解决问题
- 使用jQuery AJAX的ASP.Net MVC路由问题
- 将knockout.js observablearray对象传递给MVC Controller Action?
- jQuery / ASP MVC – “$ .ajax”调用中的parsererror