Razor内联表达式拼接固定字符串且无多余空格的最佳实践是什么?
Razor内联表达式无空格拼接最佳实践
最优方案推荐
优先选择**$前缀的字符串插值**方案,是你列出的三个可选方案里综合表现最好的,你也可以直接使用Razor原生的括号包裹语法实现更精简的写法。
各方案对比说明
1. 首选极简方案:Razor原生@()包裹语法
这是该场景下最轻量化的实现,直接将变量用@()包裹,后面直接拼接文本,Razor解析时完全不会生成多余空格:
@foreach (var photo in Model.Photos) { <a style="width:@(photo.ThumbWidth)px;" href="..."><img....></a> }
2. 复杂场景首选:$字符串插值
如果拼接逻辑更复杂(比如需要多段内容拼接、附加判断逻辑),用字符串插值的可读性最高,不需要修改模型层代码,展示逻辑全部内聚在视图层,符合分层职责要求:
@foreach (var photo in Model.Photos) { <a style="width:@($"{photo.ThumbWidth}px");" href="..."><img....></a> }
3. 不推荐:String.Concat方法
虽然可以实现无空格拼接的需求,但写法冗余,可读性远低于插值写法,代码更长。
4. 强烈不推荐:Model类新增拼接方法
将视图层的展示逻辑耦合到数据模型中,违反单一职责原则,后续如果要更换单位(如em、rem)或者调整展示规则还要修改Model代码,维护成本最高。
内容的提问来源于stack exchange,提问作者SandroRiz
相关产品推荐
相关产品推荐

