【发布时间】:2018-11-05 17:32:09
【问题描述】:
我将 null 传递给了代表类型列表视图包,但我试图理解为什么这条线
if ('@representativeTypesList' != null)
未正确评估,光标直接运行到下面视图的Html.Raw 部分。我相信我已经正确放置了@转义字符。任何帮助将不胜感激。
@{
var representativeTypesList = @ViewBag.RepresentativeTypesList;
}
@section Header {
<script type="text/javascript">
if ('@representativeTypesList' != null)
{
var array1 = '@Html.Raw(
Json.Encode(
((IEnumerable<RepresentativeTypesModelView>)ViewBag.RepresentativeTypesList).Select(item => new
{
itemValue = (item.Value == null ? "" : item.Value),
itemText = (item.Name == null ? "" : item.Name)
})
)
)';
hdninput1 = $("#txtSalesReps_hdn");
dropdown1 = $("#selSalesReps");
dropdown1.append($("<option />").val('default').text('-- '@lbls.lblSelectOption' --'));
if (array1.length > 0)
{
$.each(array1, function() {
dropdown1.append($("<option />").val(this.itemValue).text(this.itemText));
});
}
}
</script>
}
【问题讨论】:
-
if (@representativeTypesList != null) -
您正在将字符串 ''@representativeTypesList' 与 null 进行比较,所以它肯定会直接转到 html raw,尝试使条件像这样 ''@representativeTypesList' !=='null'
-
嗨,很抱歉,representativeTypesList 包含对象 ModelView,而不是字符串。
标签: javascript c# razor model-view-controller