【发布时间】:2016-04-19 21:37:44
【问题描述】:
我正在尝试运行一段 JavaScript 代码,但前提是 ViewBag 值等于 null。下面是一个例子:
<script type="text/javascript">
var defDate = @ViewBag.EndDate;
if (defDate == null)
{
$('#dt2').datetimepicker({
locale: 'en-GB',
format: 'L',
showClear: true
});
}
else
{
$('#dt2').datetimepicker({
defaultDate: defDate,
locale: 'en-GB',
format: 'L',
showClear: true
});
}
</script>
但是,这似乎不起作用,因此我们将不胜感激。
编辑:
我想我可以在启动时运行这两个 JavaScript 块?我是否应该制作一个单独的在启动时运行然后运行相关(非启动)功能 - 如果这有意义吗?
这里是按要求初始化 ViewBag 的地方:
ViewBag.EndDate = endDateFilter;
【问题讨论】:
-
首先尝试将您的代码放入
$(document).ready(function(){。其次,你能发布初始化ViewBag.EndDate的代码吗? -
@erikscandola 我会把它添加到帖子中,但这应该很重要,只要假设它是 null 或者它有一个值。
-
但如果 value 是字符串,则需要添加引号:
"@ViewBag.EndDate"。如果值为DateTime,则解决方案不一样。 -
对不起,我明白了,它被解析为一个字符串,就像 Felix Cen 的回答一样。感谢您的帮助。
-
没问题。是的,即使你总是初始化
endDateFilter,如果你有一个字符串,Felix 的答案是正确的。如果endDateFilter没有在您的 javascript 中初始化,您将拥有var defDate = "null";并且 if 将不起作用。
标签: javascript c# asp.net-mvc datepicker viewbag