2017-05-25 65 views
0

我一直在收到错误:“值不能为空”,即使我正在检查空值。 这是我的代码部分:如何在javascript中搜索空值

<script type="text/javascript"> 

      if (typeof @Model.Project.ProjectPricings.Count() != 'undefined' && 
      @Model.Project.ProjectPricings.Count()) 
      { 
      numberOfPricings = @Model.Project.ProjectPricings.Count(); 
      } 
      sourceCodeList = '@Html.Raw(string.Join("", Model.SourceCodeList.Select(x => "<option></option><option value=" + x.SourceCode + ">" + x.SourceCode + "</option>")))'; 
      targetCodeList = '@Html.Raw(string.Join("", Model.TargetCodeList.Select(x => "<option value="+ x.TargetCode + ">" + x.TargetCode + "</option>")))'; 
      unitTypeCodeList = '@Html.Raw(string.Join("", Model.UnitTypeCodeList.Select(x => "<option value="+ x.UnitTypeCode + ">" + x.UnitTypeCode + "</option>")))'; 
      currencyList = '@Html.Raw(string.Join("", Model.CurrencyList.Select(x => "<option value="+ x.CurrencyCode + ">" + x.CurrencyCode + "</option>")))'; 
      serviceCodeList = '@Html.Raw(string.Join("", Model.ServiceCodeList.Select(x => "<option value="+ x.ServiceCode + ">" + x.ServiceCode + "</option>")))'; 
      frequencyList = '@Html.Raw(string.Join("", Model.VolumeFrequencyList.Select(x => "<option value="+ x.VolumeFrequencyDescription + ">" + x.VolumeFrequencyDescription + "</option>")))'; 
      @*$(document) 
       .ready(function() { 
        if (@Model.Project.Id == null) { 
      addPricing(); 
       } 
       });*@ 
      $('#submit-price-button').button(); 
      $(".date").datepicker(); 
      $(".combobox").SumoSelect({ search: true, searchText: 'Enter here.' }); 

     </script> 
+3

_'typeof @ Model.Project.ProjectPricings.Count()!='undefined''_应该做什么? – evolutionxbox

+0

你确定在你的表达式中@ @ Model.Project.ProjectPricings.Count()'每个部分@Model,@ Model.Project和@ Model.Project.ProjectPricings不等于null? –

+0

它假设检查它是否未定义... – BYG

回答

0

通过您的描述和评论,我的理解是,你正在检查时,其中@Model.Project.ProjectPricings.Count()具有价值有麻烦,如果有值设置。

你的问题是你混合剃刀以及验证JavaScript代码 - 在你的情况,似乎是合乎逻辑直接在服务器端检查(因此剃刀)

所以更改您的代码:

@if (Model.Project.ProjectPricings != null) 
{ 
    @:numberOfPricings = @Model.Project.ProjectPricings.Count(); 
} 

// rest same 
+0

感谢十亿!它解决了这个问题。 – BYG

+0

@BYG很高兴它解决了你的问题。请提醒,在答案解决您的问题时标记为答案。 –