gpt4 book ai didi

javascript - 检查 ViewBag 值是否为空

转载 作者:行者123 更新时间:2023-12-03 09:06:13 28 4
gpt4 key购买 nike

我在 MVC3 项目中有一个 View ,在加载时我将一个实体设置到 ViewBag 中。
实体的属性之一是 Datetime? 类型。
$(document).ready我将 ViewBag 中的数据加载到 View 字段中。
为了正确加载日期,我必须解析日期:

$('#date_datepicker').datepicker("setDate", new Date('@ViewBag.Ent.MyDate.Year', '@ViewBag.Ent.MyDate.Month', '@ViewBag.Ent.MyDate.Day'));

当然,我首先检查 @ViewBag.Ent.MyDate的值是否按以下方式不为空或为空:
if ('@ViewBag.Ent.MyDate' != null && '@ViewBag.Ent.MyDate' != '')

意思是,这是我的代码:
if ('@ViewBag.Ent.MyDate' != null && '@ViewBag.Ent.MyDate' != '') {
$('#date_datepicker').datepicker("setDate", new Date('@ViewBag.Ent.MyDate.Year', '@ViewBag.Ent.MyDate.Month', '@ViewBag.Ent.MyDate.Day'));
}

但出于某种原因,我得到

无法对空引用执行运行时绑定(bind)

这是我的 Controller 代码:
public ActionResult PropertiesPage(string id)
{
if (!string.IsNullOrEmpty(id))
{
int myID = 0;
int.TryParse(id, out myID);

ent = myBL.GetByEntID(myID);
ViewBag.Ent = ent ;
}

return View();

}

为什么 Javascript 会通过我的 if声明然后失败?

编辑:
根据 Kenneth 的回答,我尝试将我的 Javascript 更改为:
@{if (ViewBag.Ent.MyDate != null) {
<script type="text/javascript">
$('#date_datepicker').datepicker("setDate", new Date('@ViewBag.Ent.MyDate.Year', '@ViewBag.Ent.MyDate.Month', '@ViewBag.Ent.MyDate.Day'));
</script>
}
}

这不会导致错误,但它不起作用(脚本失败,由于语法错误)。
代码生成:
<script type="text/javascript">
$('#date_datepicker').datepicker("setDate", new Date('@ViewBag.Ent.MyDate.Year', '@ViewBag.Ent.MyDate.Month', '@ViewBag.Ent.MyDate.Day'));
</script>

(意思是 <script><script> 内)

谢谢

最佳答案

正如您在编辑中显示的那样,对我有用的是在 javascript 代码周围放置脚本标签:

@if (ViewBag.Ent.MyDate != null) {
<script type="text/javascript">
$('#InitDate_datepicker').datepicker("setDate", new Date('@ViewBag.Ent.MyDate.Year', '@ViewBag.Ent.MyDate.Month', '@ViewBag.Ent.MyDate.Day'));
</script>
}

但是我将整个 if block 拉到现有脚本 block 之外,因此它不是双重嵌套的。

关于javascript - 检查 ViewBag 值是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18307383/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com