我正在使用MVC,在我的视图中,我使用视图模型中某些属性的值为各种div等分配类。
但是,这些值包含空格,我需要在呈现HTML之前删除空格。
还有另一种方法吗?
<% Response.Write(benefit.Name.Replace(" ","")); %>
答案 0 :(得分:1)
如果你考虑一下,你视图中的代码就是编辑一个字符串。所以,你所做的基本替换是我将如何做到的。
但是,为什么不在模型中进行工作,即提供返回修剪过的字符串的属性?或者更好的是,一种方法? EG:
<%: Model.ReplaceWS(benefit.Name); %>
其中:
public string ReplaceWS(string s)
{
s = s.Replace(" ", "");
return s;
}
如果没有别的,这看起来更整洁,使视图更容易阅读。
您还可以为字符串创建扩展方法(您可以通过在扩展方法定义中使用给定的命名空间来限制可见性)
你可以这样写:
<%: benefit.Name.ReplaceWS(); %>
我认为这是我的首选,因为它表达了你正在做的事情
答案 1 :(得分:0)
使用string的Replace方法很好。另一个选择是使用正则表达式,但这更复杂。
但是,您不应该在ASP.NET MVC模板中使用Response.Write - 有一个输出分隔符标记'&lt;%:'表示:
<%: benefit.Name.Replace(" ","") %>
请注意,使用'&lt;%:'标记时不需要使用分号。
是不是已经更简洁了?
注意:你应该在MVC 1中使用'&lt;%=',在MVC 2中使用'&lt;%:'。后者清理字符串以防止XSS攻击。