如何在剃刀代码块中插入空格?

Ala*_*lan 5 vb.net asp.net-mvc razor

VS2013,MVC5,Razor,VB

我想在"已回答"这个词前面留出空格.如何强制空格进入以下Razor代码块?

@Code If Model.DisplayAnsweredFlag Then
  @If Model.Answered Then
    @Html.Raw("Answered")
   End If
 End If
End Code
Run Code Online (Sandbox Code Playgroud)

在html.raw()中,空格本身或前面文本中的空格似乎不会被编码到页面中.但我也不能在代码块中使用' '或'@ ',因为它的语法不正确.

如果我用不好的技术进行编码,请提供建议,或者如果有不同的方法可以获得空格,请告知.

Mik*_*Vee 20

AndyBuk在这里给出了答案:https://forums.asp.net/t/1772048.aspx?How+to+use+no+break+space+HTML+character+inside+if+brackets+in+a+view+

在那个链接中,他写道:

Razor语法简介:
http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax 非常有用.
要强制为字符串输出html,可以使用<text>Block或@:作为前缀.

@if (condition)
{
    <text>&nbsp;</text>
    @:&nbsp;
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*att 15

解析HTML时会忽略空格,除非它们出现在pre块中.如果要填充某些文本,则需要采用以下方法之一:

  1. 将它包装在像p或的块级HTML元素中div,然后使用CSS向元素添加填充/边距.这是推荐的方法.

  2. 使用&nbsp;替代你想垫与常规空间.渲染HTML时,只计算不间断的空格.但是,这种方法很糟糕,不推荐使用.

  3. 将文本包装在pre元素中.然后将考虑<pre></pre>标签中的所有空格.但是,这种方法也很苛刻,不推荐.


小智 6

<text> &nbsp; &nbsp; &nbsp;</text>
Run Code Online (Sandbox Code Playgroud)

插入“ &nbsp;”以添加更多的空格。