将值从 c# 绑定到返回 NaN 的 html?

Posted

技术标签:

【中文标题】将值从 c# 绑定到返回 NaN 的 html?【英文标题】:Binding value from c# to html returning NaN? 【发布时间】:2019-02-10 05:28:12 【问题描述】:

这是我的html 代码:

 <div id="page" class="page chartContainer">
    <h1>Your Score is</h1>
       <div class="progress-bar">
        <canvas id="inactiveProgress" class="progress-inactive"  ></canvas>
        <canvas id="activeProgress" class="progress-active"  ></canvas>
     <p id="percentagediv" runat="server"></p>
       </div>
     <div id="progressControllerContainer" runat="server">
     <input type="range" runat="server" id="progressController" min="0" max="200"/>
</div>
</div>

这是我从后面的代码绑定值的地方:&lt;p id="percentagediv" runat="server"&gt;&lt;/p&gt;。 这是我的C# 代码:

if (Convert.ToInt32(dt.Rows[0][1]) != 0 && Convert.ToInt32(dt.Rows[1][1]) != 0)
   
    int achived = Convert.ToInt32(dt.Rows[0][1]);
    int trget = Convert.ToInt32(dt.Rows[1][1]);
    int percentage = (int)Math.Round((double)(100 * achived) / trget);
    percentagediv.InnerHtml = percentage + "%";
    
    else
    
     percentagediv.InnerHtml = 0 + "%";
    

我已经调试了它来自percentagediv 的值,但在首页它显示为NaN? 这里有什么问题?任何帮助将非常感激。谢谢!

【问题讨论】:

【参考方案1】:

您的问题是 + 运算符。 + 被视为一元数学加法,并将尝试 convert the string to a number 就像在 javascript 中一样。

您需要删除 + 并使用不同的方法,例如 String.Concat Method。

【讨论】:

仍然没有显示。我这样做了percentagediv.InnerHtml = percentage.ToString(); 看这里:docs.microsoft.com/en-us/dotnet/api/… 谢谢,虽然我的代码和这个链接没有什么不同。 我注意到,当我重新加载页面时,它会显示秒的百分比,然后显示 NaN【参考方案2】:

试试

percentagediv.InnerHtml = String.Format("0%", percentage );

【讨论】:

当您检查 Console.WriteLine( String.Format("0%", percent) ); , 是否符合您的预期? 它显示为例如70% 在我的案例中也显示在 console.writeline 中。问题是它没有显示在页面上,只显示NaN

以上是关于将值从 c# 绑定到返回 NaN 的 html?的主要内容,如果未能解决你的问题,请参考以下文章

如何将值从 InAppBrowser 返回到 Ionic 应用程序

将值从 c# 传递到 actionscript 3 和跨域问题

将值从 View 发送到 ViewModel

C# SQL 命令参数,将值从表单“传输”到对象再到方法

如何使用 clojure.test 将值从夹具传递到测试?

如何将值从javascript传递到iOS UIWebView