【发布时间】:2014-02-11 16:02:33
【问题描述】:
我在执行此操作时遇到了问题:我有一个 ViewBag,其中包含文档 ID 列表和每个文档的响应时间,创建方式如下:
控制器:
ViewBag.Documents= (from n in db.DocumentType
select new {a = n.DocumentTypeId, b=n.ResponseTime});
根据用户在下拉列表中选择的文档,javascript 代码计算处理文档的实际持续时间(持续时间)。
DocumentId(int) Response(int)
1 2 days
2 3 days
3 1 day
完整的 javascript 代码根据响应时间计算最终日期,不包括周末和节假日,但唯一不工作的部分是 JavaScript 代码的以下部分:
视图中的 JavaScript:
function CalculateTime(documenttype) {
var duration= 0;
var jScriptArray= new Array();
var array = '@Html.Raw(Json.Encode(ViewBag.Documents))';
for (var i = 0; i < array.length; i++) {
for (var j = 0; j < 2; j++) {
jScriptArray [i][j] = array [i][j];
}
}
for (i = 0; i < jScriptArray.length; i++) {
if (documenttype== jScriptArray [i][0]) duration= jScriptArray [i][1];
}
return duration;
}
我已经有了基于下拉列表的正确 documenttype 变量,但此脚本无法正常工作。我认为这是我想要使用 ViewBag 的方式,但我不太确定。我需要知道的是:我的代码或其他方法有什么问题。
提前致谢
【问题讨论】:
-
您应该先将其编码为 JSON,然后再将其发送到 ViewBag。
-
这是因为您的 JavaScript 变量
array通过在 JSON 中使用引号将其设置为字符串值。
标签: c# javascript asp.net-mvc-4