어딘가에 숨겨진 마법이있는 것으로 의심되어 T4MVC의 실제 메서드 호출처럼 보이지 않게되었습니다. 그런 다음 뷰를 컴파일하지 못했습니다. stackTrace가 실제 메서드로 들어갔습니다.T4MVC가 동작을 생성하지 않습니다.
[Authorize]
public string Apply(string shortName)
{
if (shortName.IsNullOrEmpty())
return "Failed alliance name was not transmitted";
if (Request.IsAuthenticated == false || User == null || User.Identity == null)
return "Apply authentication failed";
Models.Persistence.AlliancePersistance.Apply(User.Identity.Name, shortName);
return "Applied";
}
결국이 방법은 템플릿에서 생성되지 않습니다. 내 컨트롤러의 방법 Apply
가 [Authorize]
속성을 가지고 있기 때문에
<%=Ajax.ActionLink("Apply", "Apply", new RouteValueDictionary() { { "shortName", item.Shortname } }, new AjaxOptions() { UpdateTargetId = "masterstatus" })%>
<%=Html.ActionLink("Apply",MVC.Alliance.Apply(item.Shortname),new AjaxOptions() { UpdateTargetId = "masterstatus" }) %>
두 번째 방법은 컴파일에 예외가 발생했습니다 그래서 클릭이에 로그인하지 않은 사람은, 그들은 곧 다시 이것 다음, 로그인을 리디렉션하는 경우 페이지. 거기서 그들은 다시 신청을 클릭 할 수 있습니다. 이번에는 로그인 한 것입니다.
그리고 하나는 Ajax.ActionLink
이고 다른 하나는 Html.ActionLink
입니다. 나는 T4MVC 버전으로 둘 다 시도해 보았습니다.
경고 : \t 변환 컴파일 중 : 어셈블리 참조 'EnvDTE, 버전 = 7.0.3300.0, 문화 = 중립, PublicKeyToken = b03f5f7f11d50a3a'가 'EnvDTE, 버전 = 8.0'과 일치한다고 가정 할 때 템플릿에 사용자 지정 도구를 실행할 때 다음과 같은 경고가 표시됩니다. 0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a ','런타임 정책을 제공해야 할 수도 있습니다. 경고 '\t 변환 컴파일 중 :'Unreachable code detected \t T4MVC.tt line 788'. 적용 메소드가 생성되지 않습니다. 다른 코드/예외 정보로 질문을 업데이트합니다. – Maslow
이것은 귀하의 문제와 관련이없는 양성 경고입니다. –