2013-09-10 6 views
0

면도기 뷰 엔진을 사용하여 MVC 응용 프로그램에서 작업하고 있습니다.HTML 태그의 속성을 속성보기에만 추가 하시겠습니까?

HTML, 머리 및 본문 태그는 공유보기 _Layout.cshtml에 배치되며 다른보기는 레이아웃으로 사용하고 있습니다.

지원하는 응용 프로그램 중에 일부 페이지 (일부 페이지에만 해당)에 맞춤 속성을 추가해야합니다. 레이아웃에 속성을 추가하면 모든 페이지에 나타납니다. 속성을 추가하는 것이 원하는 페이지에서만 어떻게 관리 될 수 있는지 기쁘게 생각합니다. 당신은 이러한 모든 특성을 필요로하고 단지의 상단에

@{ 
    Layout = "Path/To/Layout.cshtml"; 
} 

를 사용하여 원하는 페이지에 대한 레이아웃을 참조 레이아웃을 생성 할 수 있습니다

<html ng-app="business_rules"> 

답변

1

: 아래

는 속성 내 HTML 태그입니다 그 페이지들.

나머지 페이지의 경우 이러한 속성없이 다른 레이아웃을 사용하게됩니다.

컨트롤러 레이아웃 양식도 정의 할 수 있습니다. 다음과 같이 수행 할 수 있습니다.

public ActionResult Index() 
{ 
    MyMOdel model = new MyMOdel(); 
    //TO DO: 
    return View("Index", "_AdminLayout", model); 
} 
+0

감사합니다. 코드에서이 작업을 수행 할 수있는 방법이 있습니까? – Toubi

+0

@ user188129 이것은 코드에 있습니다. 내 업데이트를 참조하십시오. –

1

jquery를 사용합니다.

<script> 
$(document).ready(function(){ 
$('html').attr("ng-app", "business_rules") 
}); 
</script> 
+0

속성을 추가하는 것이 좋겠지 만, angleJs의 부트 스트래핑에 속성이 사용되므로 앵글이 부트 스트랩을 실행하기 전에 제자리에 있어야합니다. – Almund

0

내가 지금 똑같은 문제를 가로 질러 와서 내가 아래이 있었다 해낸 최선의 해결책 (난 정말 완전히를 추가하고 싶지 않은 : 당신이 코드를 다음이 속성을 필요로하는 곳에 그냥 페이지에 추가 body 태그의 속성에 대한 별도의 레이아웃). 당신은 asp net forums에 몇 가지 제안을 가지고뿐만 아니라 내가보기 가방에 항목을 추가

, a는 (아마도 지나치게) 일반적인 일이라고 BodyAttributes :

ViewBag.BodyAttributes = "ng-app=\"moduleName\""; 

그럼 난 순수 HTLM이 렌더링 본문 태그에

<body @Html.Raw(ViewBag.BodyAttributes)> 

이렇게하면 레이아웃이 페이지 특정이 아니며 각도를 모든보기에서 부트 스트랩 할 필요가 없습니다. 또한 각도가 부트 스트랩되었는지 여부가 속한보기 자체 내에서 제어됩니다.