MVC3 MusicStore 자습서에 문제가 있습니다. Truncate 메서드를 사용하여 HtmlHelper를 정의합니다.MVC3 자습서 HtmlHelper가 작동하지 않습니다.
보기, I, 그것은@using MusicStore.Helpers
를 사용하여 가져온 다음 컴파일러는 나에게 그런 방법 (자르기) 존재를 알려줍니다 그러나
<td>@Html.Truncate(item.Title, 25) </td>
와 함께 사용하려고에서
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) + "...";
}
}
}
}
과 같다 : 도우미는 다음과 같습니다 내 HtmlHelpers 클래스가 아닌 IEnumerable [MvcMusicStore.Models.Album] (내 모델)에서자를 찾고 있습니다.
(NB 대괄호 위의 내 코드에서 정말 꺾쇠 괄호가있는 그들을 탈출을 couldnt)사람이 내가 잘못하시기 바랍니다 뭘하는지 말해 줄래?
public static class HtmlHelpers
{
public static string Truncate(
this HtmlHelper helper,
string input,
int length
)
{
if (input.Length <= length)
{
return input;
}
return input.Substring(0, length) + "...";
}
}
을 다음보기에서 당신이 확장 방법으로 정적 클래스를 포함하는 네임 스페이스 참조했는지 확인 :
+1 사이드 노트 - MVC3에서 HTML 헬퍼 용으로 'IHtmlString'을 사용했습니다. MVC3에서 사용해야합니까? 다른 클래스가이 인터페이스를 구현하는지 잘 모르겠습니다. 아니면 우리가 이것을하는 단위 테스트 (조롱)를위한 것입니까? – RPM1984
@ RPM1984 예, 리턴 타입으로'IHtmlString'을 사용할 수 있습니다. 더 정확할 것입니다. 단위 테스트를 위해 리턴 타입을 사용하지 않기 때문에 조롱하는 것에 신경 쓰지 않습니다. 계층 구조에서 더 높은 클래스/인터페이스를 사용하는 것이 좋습니다. –
** IHtmlString **을 반환하지 마십시오. 그건 HTML이 아니므로 탈출해야합니다. – SLaks