IT TIP

Razor보기 파일 내에서 일반 구문을 사용하는 방법은 무엇입니까?

itqueen 2020. 11. 4. 21:03
반응형

Razor보기 파일 내에서 일반 구문을 사용하는 방법은 무엇입니까?


다음 문장을 사용하려고했습니다.

@Html.Test<ISQL>().Nand()

그러나 Razor는 ISQL 이전에 <에서 질식하고 있습니다.

이에 대한 공식적인 조치가 있습니까?


제네릭 메서드를 사용하려면 식을 이스케이프해야합니다.

@(Html.Test<ISQL>().Nand())

mvc를 업그레이드 할 때이 "동일한 오류"를 찾고있을 때이 질문을 찾았습니다.

나는 가지고 있었다 :

작동하지 않음 :

@{ 
   ViewBag.Title = "Something " + @Model.Title;
   var something = (IEnumerable<SelectListItem>)ViewBag.Options;    
}

분명히 구문이 더 엄격 해졌고 @ {} 블록 내부에 있으므로 예제에서 Model.Title 앞에 @를 추가해서는 안됩니다. 그러나 코드 편집기의 오류는 제네릭을 가리키고 있었고 그것은 나를 미치게 만들었습니다.

코드 내부에 <>가 없으면 제대로 작동하지만 Model.Title에서 @를 제거하면 문제가 해결됩니다.

공장:

@{ 
   ViewBag.Title = "Something " + Model.Title;
   var something = (IEnumerable<SelectListItem>)ViewBag.Options;    
}

이것이 누구에게나 도움이되기를 바랍니다.


나는이 '답변'이 다소 늦었고 질문에 분명히 만족스럽고 (잘) 대답했다는 것에 감사드립니다. 그러나이 페이지의 향후 방문자를 위해 좀 더 완전한 참조 가이드를 찾고 있다면 Razor 구문에 대한 MS 소개 와 Phil Haack의 매우 유용한 Razor 빠른 참조 블로그 게시물이 있습니다.


@{ ... }블록 안에 여러 가지 과제가있을 때 이상한 경우가있었습니다 .

@{
    // ... other assignments (without error)
    List<string> stringList = new List<string>()  // ERROR MESSAGE HERE
}

내가 한 일에는 항상 다음과 같은 오류가있었습니다.

일반 유형 '목록'을 사용하려면 하나의 유형 인수가 필요합니다.

해결책 : 할당 라인을 두 번째 @{ ... } 블록에 배치했습니다 .

@{
    // ... other assignments
}
@{
    List<string> stringList = new List<string>()  // WORKS
}

@ 문자에 관한 것입니다.이 예제는 업그레이드 전에 작동합니다.

@{
    string @class = ViewBag.@class;
    IDictionary<string, object> htmlAttributes = new Dictionary<string, object>();
}

업그레이드 후 두 블록으로 분리되어야합니다.

@{  string @class = ViewBag.@class; }
@{  IDictionary<string, object> attrs = new Dictionary<string, object>(); }

참고 URL : https://stackoverflow.com/questions/4253224/how-to-use-generic-syntax-inside-a-razor-view-file

반응형