문제

누군가 나를 도울 수 있기를 바랍니다. MVC 응용 프로그램을 위해 맞춤형 HTML 도우미를 작성하려고 노력했습니다. 먼저, 나는 테스트를 시도했는데

지정된 매개 변수에 대한 태그. 네임 스페이스를 명시 적으로 가져 오지 않으면 작동하지 않습니다. 나는 많이 읽었고 읽은대로 그 방법은 다음과 같은 가져 오기 네임 스페이스없이 나타나야합니다.

<%=Html.Prueba("This is a paragraph") %>

그러나이 방법 인 Prueba는 vs Intellisense에 나타나지 않습니다.

내 수업은 다음과 같습니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace EasyGoCostaRica.Helpers
{
    public static class ViewsHelpers
    {
        //This method is just for testing. Is not working :(
        public static string Prueba(this HtmlHelper helper, string param1)
        {
            return string.Format("<p>{0}</p>", param1);
        }
    }

}

미리 감사드립니다!

도움이 되었습니까?

해결책

네임 스페이스 해야합니다 어딘가에 선언/수입. 당신은 그렇게 할 수 있습니다 :

  • 페이지 자체 내에서
  • 마스터 페이지 또는
  • web.config 파일 내부

당신이 뭔가를 원한다면 글로벌 web.config에서 네임 스페이스를 구성하는 것이 가장 좋습니다.

사용 <@import...> 처음 두 가지에 대한 지침 <namespace> 마지막 요소에 대한 구성 요소.

다른 팁

네임 스페이스를 web.config에 추가하면 나중에 걱정할 필요가 없습니다.

web.config 내부에는 다음과 같은 것을 볼 수 있습니다.

<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Linq"/>
<add namespace="System.Collections.Generic"/>
</namespaces>

네임 스페이스에 라인을 추가하십시오.

도우미가 전 세계적으로 가져 오기를 원하지 않으면 각 디렉토리는 자체 web.config를 가질 수 있습니다. 구체적으로 설정되지 않는 한, "sub"web.configs는 더 높은 web.configs에서 설정을 상속합니다. 이 경로를 가면 미리 경로를 돌리면 일부 설정은 응용 프로그램 수준에서만 설정할 수 있습니다. 혼란 스러울 수 있습니다.

Visual Studio 2013의 어떤 이유로 web.config의 변경을 위해서는 적용하려면 vs를 다시 시작해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top