Viewdata的Javascript错误

时间:2011-03-14 08:37:19

标签: javascript jquery asp.net-mvc null viewdata

我有一个链接转到控制器,该控制器呈现包含此javascript的页面。

$(document).ready(function () {
        var creditCards = '<%:(ViewData["CreditCards"])%>';
        alert(creditCards);
        if (creditCards != null) {
            var CreditCardViewData = '<%:((SelectList)ViewData["CreditCards"]).Count() %>';
            ....

我正在测试的情况是viewData creditCards 为null。我调试它并进入var creditCards = '<%:(ViewData["CreditCards"])%>';行,当我点击它进入它时,它一直跳到var CreditCardViewData = '<%:((SelectList)ViewData["CreditCards"]).Count() %>';。 (注意:当ViewData CreditCards不为空时,此页面正常工作)

跳转后,它立即给出错误:“argumentnullexception:Value不能为null。 参数名称:source。“

如何防止出现此错误。谢谢

1 个答案:

答案 0 :(得分:4)

尝试将代码更改为以下代码,以确保仅在ViewData [“CreditCards”]不为空时调用Count()。

var CreditCardViewData = '<%:((ViewData["CreditCards"]) != null) ? ((SelectList)ViewData["CreditCards"]).Count() : 0 %>'

Count()方法检查null的参数,如果检测到无效(null)参数,则抛出ArgumentNullException。