Javascript 检查JValue字符串在AngularJS中是否有值

Javascript 检查JValue字符串在AngularJS中是否有值,javascript,c#,angularjs,asp.net-mvc,razor,Javascript,C#,Angularjs,Asp.net Mvc,Razor,我正在对li元素执行ng if,以检查是否显示它 <li ng-if="@Model.punkt1.ToString().Length > 0">@Model.punkt1</li> 但是当我运行页面时,出现了以下错误: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference at CallSite.Ta

我正在对li元素执行ng if,以检查是否显示它

<li ng-if="@Model.punkt1.ToString().Length > 0">@Model.punkt1</li>
但是当我运行页面时,出现了以下错误:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference
   at CallSite.Target(Closure , CallSite , Object )
   at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
   at ASP._Page_app_plugins_mygrideditor_infobox_cshtml.Execute() in c:\Users\thomb\Documents\Visual Studio 2017\Projects\LoevbjergRema1000Umbraco\LoevbjergRema1000Umbraco\LoevbjergRema1000Umbraco\App_Plugins\MyGridEditor\infobox.cshtml:line 8
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at Umbraco.Core.Profiling.ProfilingView.Render(ViewContext viewContext, TextWriter writer)
   at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
   at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model)
   at ASP._Page_Views_Partials_grid_editors_base_cshtml.Execute() in c:\Users\thomb\Documents\Visual Studio 2017\Projects\LoevbjergRema1000Umbraco\LoevbjergRema1000Umbraco\LoevbjergRema1000Umbraco\Views\Partials\Grid\Editors\Base.cshtml:line 19
为什么我不能检查我的绳子的长度

编辑:


在将值转换为
字符串之前检查空条件

试试这个

<li ng-if="@Model.punkt1 != NULL &&  @Model.punkt1.ToString().Length > 0">@Model.punkt1</li>
  • @Model.punkt1
  • 有关详细信息:

    请选择
    ng show
    ,而不是
    ng if
    。您可以看到不同之处:

    编辑:
    不能使用
    Convert.Tostring()因为您正在尝试获取字符串的长度。因此,如果值为null,则会抛出相同的错误。有关详细信息,请参阅此链接。因此,在获取我上面提到的值的
    length
    之前,您应该检查
    null
    条件

    在将值转换为
    字符串之前检查空条件

    试试这个

    <li ng-if="@Model.punkt1 != NULL &&  @Model.punkt1.ToString().Length > 0">@Model.punkt1</li>
    
  • @Model.punkt1
  • 有关详细信息:

    请选择
    ng show
    ,而不是
    ng if
    。您可以看到不同之处:

    编辑:
    不能使用
    Convert.Tostring()因为您正在尝试获取字符串的长度。因此,如果值为null,则会抛出相同的错误。有关详细信息,请参阅此链接。因此,在获取我上面提到的值的
    length
    之前,您应该检查
    null
    条件

    可能是so的重复,您在模型中得到了一个javscript变量名?我得到了一个JSON响应,该响应具有以下属性:,其中“value”是我的“punkt1”变量。据我所知,
    punkt1
    的数据类型是什么,它是JValue数据类型。可能是so的重复,你在模型中得到了一个javscript变量名?我得到了一个JSON响应,它有以下属性:,其中“value”是我的“punkt1”变量。据我所知,
    punkt1
    的数据类型是什么,它是一个JValue数据类型。我现在得到了一个不同的错误。我已将其作为一个编辑包含在内。我尝试了你链接的解决方案,但未找到“Convert”的引用。我将尝试改用ng show。谢谢,我用当前代码进行了编辑,但仍然收到空引用错误。我现在收到另一个错误。我已将其作为编辑包含。我尝试了您链接的解决方案,但未找到“转换”的引用。我将尝试改用ng show。谢谢,我已经用我当前的代码进行了编辑,但仍然得到一个空引用错误。
    angular.module("umbraco").controller("my.custom.grideditorcontroller", function ($scope) {
        $scope.control.heading;
    
        $scope.control.punkt1 = "";
        $scope.control.punkt2 = "";
        $scope.control.punkt3 = "";
        $scope.control.punkt4 = "";
        $scope.control.punkt5 = "";
    });
    
    <li ng-if="@Model.punkt1 != NULL &&  @Model.punkt1.ToString().Length > 0">@Model.punkt1</li>