我的 Controller 中有一个数组,我正在将其传递给我的 View ,并且(暂时)我尝试console.log
数组中的一些值(只是为了使确保我正确地传递了数组。)
我尝试使用 ViewData
发送它并通过 Razor 代码访问它,但 Razor 不允许我执行任何 JavaScript 函数(例如 console.log
).
我尝试了几种不同的解决方案,但无法想出任何有效的解决方案,这是让我最接近的解决方案:
查看
function logValues()
{
console.log("test");
@{var capacity = ViewData["Capacity"] as string[]; }
for (var i = 0; i < 5; i++)
{
console.log(capacity[i]);
}
}
Controller
var uspCapacity = from d in db.uspGetEventKillSheetDetailedReport(option, date)
select new
{
d.Capacity
};
var uspCapacityList = uspCapacity.ToList();
ViewData["Capacity"] = uspCapacityList;
控制台将成功记录“测试”,但无法访问我的容量变量..因为我在 Razor 中定义它并尝试在 Razor 外部访问它。如何使用 Javascript 命令访问它?
最佳答案
您可以将 C# 数组转换为 JSON 并将其分配给 JS 变量:
<script>
var capacity = @Html.Raw(Json.Encode(ViewData["Capacity"]));
// now you can use capacity like any other JS variable...
for (var i = 0; i < capacity.length; i++) {
console.log(capacity[i]);
}
</script>
Json.Encode
在 System.Web.Helpers
中定义,并且应该在每个 MVC 项目中可用。
关于javascript - 如何在 View 中访问我的 C# 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45194032/