c# - Javascript 代码 mvc 4 上的 ViewBag

标签 c# javascript asp.net-mvc-4

我在执行此操作时遇到了麻烦:我有一个 ViewBag,其中包含文档 ID 列表和每个文档的响应时间,创建方式如下:

Controller :

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 代码的以下部分:

View 中的 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 的方式,但我不太确定。我需要知道的是:我的代码有什么问题或执行此操作的其他方法。

提前致谢

最佳答案

只删除引号

 var array = @Html.Raw(Json.Encode(ViewBag.Documents));

关于c# - Javascript 代码 mvc 4 上的 ViewBag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21268656/

相关文章:

javascript - 更新问题::querySelector 可能出现 PhantomJS/Javascript 问题

asp.net-mvc - 您是否应该有单独的 View 模型用于 Controller 的输入和输出

c# - 如何使用 ASP.NET MVC 更改 ModelState 中的值,使其有效?

c# - 如何在 DataGridview 中更改一个单元格的值以更改其他单元格的值

c# - .net 泛型中的协方差规则

javascript - Angular.js 如何验证本例中的表单?

asp.net-mvc - 在 MVC 4 中注册自定义模型绑定(bind)器

c# - 如何从.Min扩展方法获取对象?

c# - ExecuteNonQuery 返回什么 int 值

Javascript/AJAX 在 Opera 中不工作,在 FF/IE/Chrome 中工作完美