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
'IT TIP' 카테고리의 다른 글
| TortoiseSVN의 Windows 탐색기 아이콘이 상태를 수정하기 위해 새로 고치는 데 오랜 시간이 걸립니다. (0) | 2020.11.04 |
|---|---|
| .NET의 String.Normalize는 무엇을합니까? (0) | 2020.11.04 |
| REST API 승인 및 인증 (웹 + 모바일) (0) | 2020.11.04 |
| os.path.exists와 os.path.isdir의 장단점 (0) | 2020.11.04 |
| MemoryCache 스레드 안전성, 잠금이 필요합니까? (0) | 2020.11.04 |