MVC 2 사이트에는 내 페이지에 javascript를 추가하는 데 사용되는 html 도우미가 있습니다. 내 마스터 페이지에는 내가 포함시키고 싶은 메인 자바 스크립트가 있고 aspx 페이지에는 페이지 별 자바 스크립트가 포함되어 있습니다. MVC2 도우미 MVC3 면도기 뷰 엔진으로 이동
....
<head>
<%=html.renderScripts() %>
</head>
...
//core scripts for main page
<%html.AddScript("/scripts/jquery.js") %>
<%html.AddScript("/scripts/myLib.js") %>
....
그런 다음 아이의 aspx 페이지에서, 나는 또한 다른 스크립트를 포함 할 수 있습니다
그래서 예를 들어, 내 Site.Master는 다음과 같이 있습니다. 전체 페이지에 자바 스크립트 파일을 렌더링됩니다 그래서
...
//the page specific script I want to use
<% html.AddScript("/scripts/register.aspx.js") %>
...
모두 수집 sitemaster 자리 표시 기능 RenderScripts에 의해 머리에 렌더링됩니다. 이것은 잘 작동합니다.
이제 MVC 3 및 레이저 뷰 엔진에서 레이아웃 페이지가 다르게 동작합니다. 이제 페이지 레벨 자바 스크립트가 렌더링/포함되지 않기 때문입니다. 이제 LayoutMaster 내용을 볼 수 있습니다.
MVC 3 및 면도기 뷰 엔진과 어떻게 솔루션을 사용할 수 있습니까? 참고로
(도우미가 이미 HTMLString을 ;-) 반환하도록 다시 작성되었습니다) :
...
...
<head>
@{
Html.AddJavaScript("/Scripts/jQuery.js");
Html.AddJavaScript("/Scripts/myLib.js");
}
//Render scripts
@html.RenderScripts()
</head>
....
및 하위 페이지는 다음과 같습니다 : 내 MasterLayout은 다음과 같습니다
@{
Layout = "~/Views/Shared/MasterLayout.cshtml";
ViewBag.Title = "Child Page";
Html.AddJavaScript("/Scripts/register.aspx.js");
}
....
<div>some html </div>
도움 주셔서 감사합니다.
편집 =이 질문이 명확하지 않은 경우 설명 만하면됩니다.
"페이지"를 만들 때 html.addJavascript ("filename.js")를 사용하여 디자이너가 사용하고자하는 모든 자바 스크립트 파일을 수집하고이를 사전에 저장합니다. - (1) 파일 - 마지막으로 페이지를 렌더링 할 준비가되면 헤더에 모든 자바 스크립트 파일을 깔끔하게 작성합니다. (2) -이 도우미는 JS를 한 곳에 보관하는 데 도움이되며 디자이너가 자바 스크립트 파일을 여기 저기에 추가하는 것을 방지합니다. 이 작업은 mvc 2.의 Master/SiteMaster Pages에서 제대로 작동하는 데 사용되었지만 면도기로 어떻게이 작업을 수행 할 수 있습니까?
편집 : HTML 도우미 코드 :
....
private const string SCRIPTLINK =
"<script src=\"{0}\" type=\"text/javascript\"></script>";
public static HtmlString RenderScripts(this HtmlHelper helper) {
OrderedDictionary scripts =
helper.ViewContext.HttpContext.Items["JavaScripts"] as OrderedDictionary;
StringBuilder sb = new StringBuilder(500);
foreach (DictionaryEntry script in scripts) {
sb.AppendFormat(SCRIPTLINK, script.Key);
}
return new HtmlString(sb.ToString());
}
....
어디서 스크립트를 stroring합니까? – SLaks
HtmlHelper 코드가 무엇입니까? –
사전은 어디에 보관합니까? – SLaks