【问题标题】:Asp.net Space being auto-generated into html DivsAsp.net Space 自动生成到 html Divs
【发布时间】:2016-04-19 13:34:05
【问题描述】:

我是 Asp.Net 的新手,我在使用布局时遇到了问题。我有一个 div,里面是一个 p 标签,这取决于嵌入式 c# 翻转是真还是假,我希望它是一个空的 p 标签或带有内容的 p 标签。

问题:当 div 标签内没有放置任何东西时,就会发生这种情况。它会产生大量空间,阻止我使用 :empty css 标签,因为里面有技术内容。

我的代码是这样的:

<div>
    @if (flip = true){
     <p>text</p>
    }
    else{}
</div>

【问题讨论】:

  • 我为这个问题搞砸了道歉,每次我尝试修复它都会回到那个问题。
  • 产生空间有什么问题?它不会被浏览器渲染
  • 因为当信息进出 p 标签时我需要使用 :empty 标签。在页面的开头,因为它有空格,它不会执行并且页面看起来很不稳定。
  • 我也遇到了这个问题...简单地将所有内容移至一行(不需要任何额外的空格)并且所有空格都消失了。

标签: c# html asp.net asp.net-mvc-5


【解决方案1】:

尝试使用 Razor 的“文字”标签之一(如此处所述:How to use Razor like asp:Literal?):

<div>@Html.Raw(flip ? "<p>text</p>" : "")</div>

并确保将&lt;div&gt; 保留在一行中。

使用类似于@: 的语法可能有更好的方法,但我不记得那个语法了。


更新:如果您在 div 中添加大量内容并且您只关心 css :empty 选择器,您可能会更好关闭只是向div 添加一个专门的类(如此处所述:How to use ? : if statements with Razor and inline code blocks):

<div class="col-md-12 game @(flip ? "" : "empty")">

那么你就可以使用你已经使用过的语法了 (@if(flip){})

【讨论】:

  • 另外,如果您是 C# 新手,?? 标记是一种内联 if 语句的方法。技术术语是条件运算符:msdn.microsoft.com/en-us/library/ty67wk28.aspx
  • 条件运算符(又名三元运算符)是 : 。这 ??运算符是 Null 合并运算符:msdn.microsoft.com/en-us/library/ms173224.aspx
  • 很好,我会解决的。去显示我是多么完全依赖红色波浪线来捕捉编译器错误。
  • 我将来需要在该 div 中添加更多信息,但也使用该翻转。未来不可能不费力就保持一条线。
  • 非常感谢您的更新完成了我需要完成的工作。我也是 c# 的新手,我通常使用 Java,所以我很欣赏你的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 2019-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多