2014-12-28 3 views
3

이며, @model, @html@using은 무엇이며 왜 우리가 보통 (@)을 사용하고 언제 어떤 단어를 사용합니까? 예를 들어MVC5에서 MVC5 모델의 의미는

: @model MVC_Project2.Models.stufftable이 re.cshtml 페이지의 첫 번째로 작성 stufftable는 사용자가 속해있는 테이블이 새 사용자를 만드는 것입니다 다음 코드는 두 개의 레이블이 두 개의 텍스트 상자를 만들 같은 페이지에 기록

@using (Html.BeginForm()) 
{ 
    <div> 
     @Html.LabelFor(u => u.stuffname) 
     @Html.TextBoxFor(u => u.stuffname) 
    </div> 
    <div> 
     @Html.LabelFor(u => u.stuffpass) 
     @Html.PasswordFor(u => u.stuffpass) 
    </div> 
    <input type="submit" /> 
} 
+1

그냥 면도기 구문입니다. –

+2

http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-%28c%29 –

+0

왜이 질문에 3 표가 있습니까? 이 질문은 유효하지 않습니다. 당신은 하나의 질문을 여러 번하고 있습니다. – ataravati

답변

0

@는 면도기 코드의 지시에 사용됩니다 : 라벨은 로그인 페이지를 표시합니다. 예를 들어 @model은 뷰를 모델에 바인딩합니다. @은 HTML에서 백엔드 C# 코드를 실행하고 인쇄하는데도 사용됩니다. @Html을 사용하면 MvcHtmlString을 반환하는 Mvc 프레임 워크의 일부인 도우미 클래스를 호출합니다.

0

깨끗하고 단순 : @은 면도기 문법입니다. 보기 (HTML code)에 C# 코드를 삽입하는 데 도움이됩니다. 예를 들어
:

@DateTime.Now 

당신에게 현재 날짜와 시간을 표시합니다.

7

.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에 대해 더 많이 배워야 할 것입니다.

+0

무슨 간결한 설명. 투표 할 자격이있어. :) – agentpx

관련 문제