我遇到了MVC3 MusicStore教程的问题。它使用Truncate方法定义了一个HtmlHelper。助手看起来是这样的:MVC3教程HtmlHelper不起作用
using System.Web.Mvc;
namespace MusicStore.Helpers
{
public class HtmlHelpers
{
public static string Truncate(this HtmlHelper helper, string input, int length)
{
if (input.Length <= length)
{
return input;
}
else
{
return input.Substring(0, length) + "...";
}
}
}
}
在视图中,我将其导入使用@using MusicStore.Helpers
,然后尝试但是编译器告诉我没有这样的方法(截断)存在与<td>@Html.Truncate(item.Title, 25) </td>
使用它,而且似乎在IEnumerable [MvcMusicStore.Models.Album](这是我的模型)而不是我的HtmlHelpers类上寻找Truncate。
(NB的方括号以上是在我的代码确实尖括号,不可能逃脱他们)
谁能告诉我,我做错了什么吗?
+1和附注 - 我已经在MVC3中看到过HTML Helpers的IHtmlString的用法。我们应该在MVC3中使用它吗?我不确定其他类实现了这个接口。还是单元测试(嘲笑)我们这样做? – RPM1984 2011-03-10 22:28:18
@ RPM1984,是的,你可以使用'IHtmlString'作为返回类型。这将是更正确的。这不是单元测试,因为它在这里是返回类型,所以我们不关心嘲笑它,它只是使用层次结构中更高级的类/接口的良好实践。 – 2011-03-10 22:30:53
**不要返回IHtmlString **。这不是HTML,必须转义。 – SLaks 2011-03-10 22:36:48