连接字符串时,剃刀不接受空格作为第一个字符吗?
Posted
技术标签:
【中文标题】连接字符串时,剃刀不接受空格作为第一个字符吗?【英文标题】:Doesn't razor accept space as the first character when concat strings? 【发布时间】:2022-01-14 17:12:07 【问题描述】:我在 .NET6 应用程序的 razor 视图中有以下元素:
<input type="number" placeholder=@((Model.Child?.Name ?? "DefaultName") + " SomeExtraText")>
Name 属性不为空时的预期输出是:“Name SomeExtraText”。但是我只得到 "Name" 作为输出。
当我将 " SomeExtraText" 更改为 "-SomeExtraText" 时,我得到的输出为 "Name-SomeExtraText"。
我也尝试使用 String.Format 如下:
<input type="number" placeholder=@(String.Format("01",(Model.Child?.Name ?? "DefaultName"), " SomeExtraText"))>
但结果是一样的。
这是什么原因?
【问题讨论】:
【参考方案1】:添加额外的引号:
<input type="number" placeholder="@((Model.Child?.Name ?? "DefaultName") + " SomeExtraText")">
【讨论】:
感谢您的回答。你能解释一下吗? @EmreUtkuSolak:不客气!我是按照定义来做的:html placeholder Attribute。 顺便说一句,有时查看生成的 HTML(例如在浏览器中查看页面源代码)有助于理解问题。 我还是有点困惑。不是字符串+字符串=字符串???所以当我做“a”+“b”时,结果是“ab”,但是当我做“a”+“b”时,结果是“a”而不是“ab”。是不是有点奇怪。 @EmreUtkuSolak:如您所知,cshtml
由 MVC 处理并编译为 HTML,然后像往常一样传递给客户端。当您的表达式不带引号时,编译后您将拥有<input type="number" placeholder=DefaultName SomeExtraText>
,而placeholder
将仅显示DefaultName
文本。如果您将表达式放在引号内,则将生成 <input type="number" placeholder="DefaultName SomeExtraText">
,而 placeholder
将显示 DefaultName SomeExtraText
文本。
现在一切都清楚了。再次感谢。以上是关于连接字符串时,剃刀不接受空格作为第一个字符吗?的主要内容,如果未能解决你的问题,请参考以下文章