从视图中的Javascript访问MVC3模型属性
Access MVC3 Model properties from Javascript in the View
我正试图在mvc应用程序中构建一个谷歌图表。
以下是谷歌图表javascript 的片段
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Task');
data.addColumn('number', 'Hours per Day');
data.addRows([
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
}
我想做的是用一个for循环来替换上面的data.addRows行,该循环遍历我的模型中的项。我可以在标签之外的视图中进行很好的迭代,当然是这样:
"@foreach (var item in Model) {
<div>@Html.DisplayFor(modelItem => item.Customer.Name)</div>
}"
我似乎找不到一个在标签内迭代我的模型的解决方案。有什么想法吗?
假设您有一个视图模型:
public class MyViewModel
{
public object[][] Values { get; set; }
}
其中存储一些值并传递到视图:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
Values = new[]
{
new object[] { "Work", 11 },
new object[] { "Eat", 2 },
new object[] { "Commute", 2 },
new object[] { "Watch TV", 2 },
new object[] { "Sleep", 7 },
}
};
return View(model);
}
}
在您看来,您可以对其进行JSON编码:
@model MyViewModel
<script type="text/javascript">
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Task');
data.addColumn('number', 'Hours per Day');
data.addRows(@Html.Raw(Json.Encode(Model.Values)));
}
</script>
将在最终标记中呈现为:
<script type="text/javascript">
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Task');
data.addColumn('number', 'Hours per Day');
data.addRows([["Work",11],["Eat",2],["Commute",2],["Watch TV",2],["Sleep",7]]);
}
</script>
您根本不应该担心包含单引号或双引号的值可能会破坏您的javascript,因为您使用了JSON序列化程序,而不是手动构建它。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 我应该如何检查主干.主干.模型更改时查看
- 用于选择MVC3中单选按钮值的JavaScript
- 尝试从 MVC3 中的 JSON 解析模型数据
- JavaScript 模型中的 MVC3 EditorFor() 更改值无法识别更改
- 将MVC3模型作为JSON传递给Javascript块
- 对集合使用getter时,ASP.NET MVC3模型绑定器数据无效
- 从javascript向MVC3控制器发布模型和附加参数
- 如何在MVC3中将字符串从模型动态加载到javascript
- 如果我的模型是MVC3中的QueryTable,如何访问Javascript中的项目数据
- 从视图中的Javascript访问MVC3模型属性
- 通过设置src of element将模型发送到MVC3控制器