C# Viewbag类型datetime为null,但视图显示空字符串,无法显示数据(MVC)
我有一些问题。 我从控制器获得了VIEWBAG,并将数据指定为代码并显示 我在Jquery上检查它显示“无法对空引用执行运行时绑定” @ViewBag.detail.from_date_go为空,但如果条件为false,则查询检查通过,但如果条件为false,为什么查询接受C# Viewbag类型datetime为null,但视图显示空字符串,无法显示数据(MVC),c#,asp.net-mvc,web,C#,Asp.net Mvc,Web,我有一些问题。 我从控制器获得了VIEWBAG,并将数据指定为代码并显示 我在Jquery上检查它显示“无法对空引用执行运行时绑定” @ViewBag.detail.from_date_go为空,但如果条件为false,则查询检查通过,但如果条件为false,为什么查询接受 '@ViewBag.detail.from_date_go'==''如果@ViewBag.detail.from_date_go为空 这里对所有代码进行评估。 您必须在服务器端检查空值。在代码中,您在客户端签入 使用“@if
'@ViewBag.detail.from_date_go'==''如果@ViewBag.detail.from_date_go为空 这里对所有代码进行评估。 您必须在服务器端检查空值。在代码中,您在客户端签入 使用“@if”检查razor中的空值,而不是javascript中的空值 例如:
@if (MyValue != null) {
//This code will be evaluated only if MyValue is not null
<script>
$(function(){
$('#MyField').val('@MyValue.ToString()');
});
</script>
}
@if(MyValue!=null){
//仅当MyValue不为null时,才会计算此代码
$(函数(){
$('#MyField').val('@MyValue.ToString()');
});
}
最简单的方法是直接编写html:
<input type="text" value='@(MyValue != null ? MyValue.ToString() : "")' />
或者在脚本标记中
<script>
$(function(){
//...
@if (MyValue != null) {
@Html.Raw("$('#MyField').val('" + MyValue.ToString() + "');");
}
//...
});
</script>
$(函数(){
//...
@如果(MyValue!=null){
@Html.Raw(“$”(“#MyField”).val(“+MyValue.ToString()+”);”;
}
//...
});
记住:当您使用@if时,它发生在服务器端。当您在javascript中使用if时
希望能有所帮助;-) 由于在
null
上调用ToString()
,因此引发异常。在代码中,if语句不会在服务器端运行,除非调用as@if(!string.IsNullOrWhitespace(ViewBag.detail.from_date_go)){…}
。