繁体   English   中英

如果Razor HTML中不存在版本号,则将字符串设置为空

[英]Set string to empty if no version number exists in Razor HTML

我在cshtml中构建一个简单的结构:如果不存在版本号,则将字符串设置为空,否则放置带有版本信息的链接

<label style="float:right;">
    Version: @resp.VersionNumber
    @if (string.IsNullOrEmpty(@resp.VersionNumber))
    {
         @resp.VersionNumber == "";
    }
    else
    {
         <a>Version link code</a>
    }
</label>

Resp是JsonResponce局部变量,而VersionNumber是JsonResponce类的字符串数据成员。

尽管看起来非常简单,但返回的错误使我抓狂了。

错误在if语句内。 我试图将该行包含在该线程中被接受的答案所建议的()中,但它返回了编译错误,例如在该帖子中 两种情况下的结构都与我的结构略有不同,因此我无法完全应用它们。

如果我按原样将行留在里面,则返回invalid expression term ==expected ;编译错误expected ; ,即使我已经拥有它。

我知道我可能缺少一些简单的东西,但是请您指出如何更改代码以消除这些错误。 并简要解释为什么要这样做,因为我也想从这个问题中学习。

我是该领域的初学者,所以请放轻松。 非常感谢你!

更新

根据大家的建议,我重新排列了代码,现在看起来像下面的代码

<label style="float:right;">
     Version: 
     @if (string.IsNullOrEmpty(resp.VersionNumber))
     {
         <span></span>;
     }
         else
     {
         @resp.VersionNumber
         <a>Version link code</a>
     }
</label>

您有几个错误。 首先,由于您已经在代码块中,因此在不属于的地方有@。 当您最有可能需要分配(=)时,可以使用比较(==)。 您还首先输出该值,然后要对其进行修改。

您很可能在追求这样的事情

<label style="float:right;">
  Version:
  @if (string.IsNullOrEmpty(resp.VersionNumber))
  {
    <span>No version number!</span>
  } else {
    <a>Version link code</a>
  }
</label>

这样,您可以检查文本是否存在,如果不存在,则仅输出文本,如果确实存在,则可以按所需方式进行链接。

这个

 @resp.VersionNumber == "No version number!";

应该

 @resp.VersionNumber = "No version number!";

您使用==比较值,使用=分配值:

分配: https : //msdn.microsoft.com/en-us/library/sbkb459w.aspx
平等: https : //msdn.microsoft.com/en-us/library/53k8ybth.aspx

如果存在版本号,这只会显示与版本相关的信息

<label style="float:right;">
    @if (!string.IsNullOrEmpty(resp.VersionNumber)) {
        Version: @Html.ActionLink(resp.VersionNumber, "actionName", "controllerName")
    }
</label>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM