【问题标题】:concatenating value to value in c# code -- Asp.net MVC在 c# 代码中将值连接到值 - Asp.net MVC
【发布时间】:2015-06-18 07:23:14
【问题描述】:

我有一个锚点,我正在动态地将 id 分配给这个锚点

<li>
  <a href="#" 
     name="offset" onclick="return so(this);" 
     data-val="@Math.Round(Convert.ToDouble(ViewBag.lst[0].ca/2))" 
     id='javascript:"a+@Math.Round(Convert.ToDouble(ViewBag.lst[0].ca / 2))"'>Last</a>
</li>

我应该得到 a3 或 a4 或 a5,因为这个 @Math.Round(Convert.ToDouble(ViewBag.lst[0].ca / 2)) 返回数值。

但我收到的是“a+3”或“a+4”。显然它也在连接加号。

我在上面尝试做的是简单的字符串连接。以上代码来自asp.net mvc视图。

【问题讨论】:

  • 为什么首先需要js?
  • 你的答案对你有用吗?

标签: javascript c# jquery asp.net-mvc razor


【解决方案1】:

+ 不被视为运算符,而是被视为字符串,您可以使用string.Concat 连接字符串和您的表达式

 <li><a href="#" name="offset" onclick="return so(this);" data-val="@Math.Round(Convert.ToDouble(ViewBag.lst[0].ca/2))"
       id='@string.Concat("a",Math.Round(Convert.ToDouble(ViewBag.lst[0].ca / 2)))'>Last</a></li>

【讨论】:

  • 现在它返回“a@Math.Round(Convert.ToDouble(ViewBag.lst[0].ca / 2))”
【解决方案2】:

由于您是在 cshtml 中执行此操作(我想),您可以避免内联 javascript 的丑陋并简单地使用:

 @("a"+ Math.Round(Convert.ToDouble(ViewBag.lst[0].ca / 2))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2012-05-06
    • 2013-01-14
    • 2018-01-07
    • 2012-06-22
    • 2011-10-23
    • 1970-01-01
    相关资源
    最近更新 更多