【问题标题】:ASP.NET Web Pages (Razor) change html code if condition is true not working如果条件为真,ASP.NET 网页(Razor)更改 html 代码不起作用
【发布时间】:2014-06-12 09:36:22
【问题描述】:

我正在开发 ASP.NET 网页 (Razor) 项目。如果条件为真,我想显示HTML 代码,但似乎浏览器将其显示为Plain Text 而不是HTML 代码。

这是我的 HTML

<li>@(active=="test" ? "<a href='?log' id='button'>TEST</a>" : "<a href='?test' id='button'>TEST</a>")</li>

如果@(active=="test") 条件为真,我希望我的HTML 代码更改为另一个。请帮我做这个?

【问题讨论】:

    标签: c# asp.net razor webmatrix asp.net-webpages


    【解决方案1】:

    试试这个方法:

    @if(active=="test")
    {
    <a href='?log' id='button'>TEST</a>
    }
    else
    {
    <a href='?test' id='button'>TEST</a>
    }
    

    【讨论】:

    • 谢谢它的工作!但我也想知道它现在是如何工作的,我的方法有什么问题?
    • Razor 无法识别“?”运算符,因此它只是将其呈现为纯文本。 Razorview 引擎有起有落。
    • 因为浏览器源代码使用两种方法显示相同的结果。
    • OKK...谢谢。
    • @MaryMelody 使用这种方法,Razor 在遇到 '
    【解决方案2】:

    你也可以试试这个

    <li>@Html.Raw(active=="test" ?"<a href='?log' id='button'>TEST</a>" : "<a href='?test' id='button'>TEST</a>")</li>
    

    重点是 Razor 总是对输出进行编码,你需要告诉它不要使用 Html.Raw() 帮助器这样做

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 2019-11-28
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      相关资源
      最近更新 更多