.cshtml 파일의 모든 내용은 HTML입니다. 그래서 그것은 서면으로 쓰여질 것입니다. 즉
, 당신은 당신이보기를 렌더링 할 때 다음, 실제로 단어를 페이지에 model blah
가 표시됩니다 @
없이
model blah
를 입력합니다.
@
부호는 Razor 엔진에 다음 내용이 코드임을 알려주는 지시어로 출력에 간단히 기록하지 않고 컴파일해야합니다.
그래서 당신이 면도칼로 컴파일하고 모델의 유형은 'ㅋ'이, 인 면도기 엔진을 알려줍니다
@model blah
를 입력 할 때 그래서 당신은 자본 M주의 (키워드 Model
를 사용할 때 @ 기호도 사용해야합니다.) 정의한 모델을 참조합니다 (이 경우 blah
).
그래서 당신은 blah.Foo이 수 (14)를 포함하는 경우, 그것은 출력에 숫자 14을 작성, 다음
@model blah
@Model.Foo
를 작성하는 경우. 짐작 하시겠지만,
@
기호는 많은 용도가 있으므로
@Model.Foo
이라고 말하면 실제로는
Response.Write(Model.Foo)
과 같은 것을하고 있습니다. 일반적으로
는
@
기호는 그러나 면도칼 좀 똑똑, 기존의 ASPX 코드 덩어리가
<% ... %>
사용 된 동일한 방법으로, 코드 모드로, HTML 모드에서 전환 사용하고 귀하의 코드의 컨텍스트를 이해한다 코드가 대부분 끝나는 곳을 추측 할 수 있으므로 예전처럼 끝 대괄호를 사용할 필요가 없습니다.
@using
은 C# 코드와 비슷하지만 블록이 끝난 후 일회용 리소스를 삭제하는 using 문입니다. 면도기는 많은 경우이 기술을 사용하여 코드 블록의 끝을 나타냅니다. 그래서, 예를 들어 말 :
@using(Html.BeginForm()) {
....
}
Html.BeginForm
도우미는이 경우에 using 문이 종료 될 때 호출되는 IDisposable
인터페이스를 정의하는 객체, 그래서 BeginForm()
를 반환하는 것은 <form>
태그를 출력하고 IDisposable.Dispose()
방법 인 경우 using 문 끝에서 호출되면 </form>
을 출력합니다. 그것은 HTML을 제대로 닫을 수 있도록 태그를 출력하는 다른 코드를 래핑하는 데 사용되는 기법입니다.
@Html
도 C#입니다. 그러나 HtmlHelper 객체 (Razor는 HtmlHelper 유형의 뷰를 지원하는 "ViewPage"클래스에서 Html이라는 객체를 정의하고이 HtmlHelper 객체는 HtmlHelper 객체에 정의 된 다양한 C# 확장 메소드를 호출합니다. C# 확장 메서드가 무엇인지 모르는 경우 다시 작성해야 할 개체가없는 개체를 확장하는 방법입니다. 이는 고급 C#입니다. @Html.TextBox()
과 같은 형식은 HtmlHelper.TextBox()
유형의 메서드를 호출하므로 호출 할 수있는 C# 메서드 일 뿐이지 만 이러한 메서드는 HTML을 만드는 데 도움이되는 도우미로 만들어졌습니다.
정말 많은 부분이 있습니다. 내가 토론 한 개념을 이해하지 못한다면 C# 및/또는 HTML에 대해 더 많이 배워야 할 것입니다.
그냥 면도기 구문입니다. –
http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-%28c%29 –
왜이 질문에 3 표가 있습니까? 이 질문은 유효하지 않습니다. 당신은 하나의 질문을 여러 번하고 있습니다. – ataravati