아약스 요청 인 경우 부분 뷰의 끝 부분에 javascript를 추가하는 메소드가 있습니다. 그러나 내 문제는 스크립트가 반환 될 때 스크립트 태그가 제거되고 실행하려는 함수가 일반 텍스트로 작성된다는 것입니다.MVC3 면도기는 HtmlString에서 스크립트 태그를 제거합니다.
if (httpContext.Request.IsAjaxRequest())
{
script = "MyNamespace.globals.initFunctions.push(function() { " + script + " });";
return new HtmlString(@"<script type=""text/javascript"">" + script + "</script>");
}
그래서, 대신
<script type="text/javascript">MyNamespace.globals.initFunctions.push(function() { MyNamespace.init(); });</script>
의 원하는 결과를 얻는 나는 일반 텍스트로 MyNamespace.globals.initFunctions.push(function() { MyNamespace.init(); });
를 얻을.
어떤 이유가있을 수 있습니까?
편집 : Html.Raw 그것을 시도
() 도움이되지 않았다. 스크립트 문자열에는 스크립트 태그가 포함되어 있지만 렌더링시 제거됩니다.
@{
string script = ViewUtilities.AddScript("MyNamespace.init();", this.ViewContext.HttpContext);
}
@Html.Raw(script);
편집 2 :
이제나는이 같은 관점에서 모든 것을 쓰기 시도했습니다,
<script type="text/javascript">
MyNamespace.globals.initFunctions.push(function() { MyNamespace.init(); });
</script>
하고 여전히 스크립트 주위의 태그를 제거하고로 렌더링 일반 텍스트. 여기에서 어디로 가야할지 모르겠다 ...
Firebug로 응답을 테스트 할 때 잘 보이지만 html로 보지 않는다.
혹시이 알아낼 했습니까? 내 스크립트 태그가 제거 된 일반보기에서 똑같은 것을 얻고 있습니다 – Jacques