2011-07-06 5 views
5

동적 인 부분이 포함 된 CSS/js 페이지를 작성하고 있습니다. 이 작업을 수행하려면 css/js가 포함 된 cshtml 파일을 사용하고 있습니다. mvc.net을 사용하고 컨트롤러 작업에서 CSS를 반환하고 있습니다.Visual Studio에서 cshtml 파일을 자바 스크립트로 인식하는 방법

문제는 Visual Studio에서이 페이지를 html로 인식하고 javascript/css로 인식하지 않으므로 javascript/css 색상 표시 및 IntelliSense를 제공하지 않습니다.

내 질문 :

  1. .NET
  2. 동적 CSS/JS를 만드는 더 나은/쉬운 방법이 어떻게 자바 스크립트로 cshtml 페이지를 인식하는 비주얼 스튜디오를 얻을 수 있습니다.

답변

0

가장 좋은 방법은 눈에 거슬리지 자바 스크립트 눈에 거슬리지 스타일을 따라하고 .js 파일로 자바 스크립트를 말하자면 .css 파일로 CSS를 넣고 <script><link> 태그와 cshtml 파일의 마크 업을 참조하는 것입니다.

<script src="Scripts/scriptName.js" type="text/javascript"></script> 
<link rel="stylesheet" href="Content/styleSheetname.css" type="text/css" /> 

콘텐츠 (마크 업)/스타일/동작을 분리하여 유지하는 것이 좋습니다.

+0

이 기본적 – vittore

+0

@vittore으로 사용되지 않습니다은 .js와 .CSS에 면도칼을 가능하게 할 것입니다 - 어떻게 내가 JS에 대한 면도칼을 활성화 할 수 있습니다? 그게 정확히 내가 찾고 있던거야. @stuperUser - 저는 정적 인 js 파일을 원하지 않기 때문에 다른 시나리오에서 작은 변화가 있기 때문에 js를 동적으로 생성하려고합니다. – Daniel

+0

@ 대니얼에서는 스크립트로 플래그/매개 변수로 사용되는 마크 업에 데이터를 추가하여 테스트가 필요한 경우 동적 코드가 아닌 실행 방법을 결정할 수 있습니다. – StuperUser

0

페이지에 <script><style> 태그를 넣고 동적 js/css를 넣는 것이 잘못된 이유입니다. 동적 인 경우 끝에는 캐시를 사용할 방법이 없으므로이 접근 방식이 좋을 것입니다. 아래 같은 것을 쓸 수 있습니다 :

<script> 
function [email protected](params)(obj) { return obj.field + @MyOtherFunc(params); } 
<script> 

와 면도칼 엔진은 당신이 RazorJS의 nuget 패키지를 시도 할 수는 자바 스크립트를 브라우저

+0

이것은 동작을 마크 업과 혼합하여 자바 스크립트의 단위 테스트 가능성을 손상시킵니다. – StuperUser

+0

@StuperUser : topic starter는 동적 인 js를 요청했습니다. imho는 기본적으로 이것을 수행합니다. – vittore

+0

그것은 동적이지만 단지 몇 가지 시나리오 (현재는 아마도 더 미래의 것일 수도 있습니다)가 있기 때문에 캐시에 저장하려고합니다. – Daniel

0

로 보내기 전에 @MyFunc (PARAMS)와 @MyOtherFunc (PARAMS)를 평가합니다. 그러나 우리는 그것을 사용하는 동안 약간의 불일치가 발생했습니다.

여전히 컨트롤러/뷰를 사용하여이 작업을 수행하는 더 나은 방법을 찾고 여전히 인텔리 센스를 사용하고 색감을 제대로 얻을 수 있어야합니다.

1

나는 ...이 이전 게시물 알고 ...하지만

내가 그냥 자신의 .cshtml 파일에 내 자바 스크립트 파일 주위에 스크립트 태그를 넣어했다. 별도의 컨트롤러 (JavascriptController.cs)를 만들고 스크립트 태그를 제거하는 컨트롤러에 필터를 만들었습니다. OnActionExecuting 메서드에서 필터를 설정했습니다. 단지 그래서 당신은 구문을 얻을

this.Response.Filter = new ScriptFilter(Response.Filter, Response.ContentEncoding); 

을 수행하여, 당신은 RazorJS를 사용하지 않고도 면도칼을 얻고, 당신은 MVC 응용 프로그램에서 정규 루트 같은 JS 파일을 요청할 수 있습니다. 편집하는 동안 부분 뷰에 스크립트 태그를 유지하면됩니다.

그래서 당신은

/자바 스크립트/{동작}

를 호출 할 수 있습니다 그리고 당신은 당신의 면도칼로 자바 스크립트 파일을 얻을 것이다, 그리고 같은 당신이 그것을 포함 할 수 있도록 필터는 스크립트 태그를 제거합니다 정상적인 스크립트.

<script src="http://{host}/Javascript/{action}"></script> 
+0

좋은 접근법 :이 블로그 포스트는 코멘트 섹션에서 언급 된 몇 가지 버그가 있지만 좀 더 자세하게 설명되어 있습니다. https://blog.mariusschulz.com/2013/07/07/generating-external-javascript-files-using-partial-razor-views?cachebreaker=635670317115705127#comment-20970 –

관련 문제