2013-07-10 5 views
0

안녕하세요!자바 스크립트 기능은 파일이 아닌 페이지에서만 작동합니다.

$(function() { 
     $('[data-provide=typeahead]').each(function() { 
      var self = $(this); 
      self.typeahead({ 
       source: function (term, process) { 
        var url = self.data('url'); 
        console.log(url); 

        return $.getJSON(url, { term: term }, function (data) { 
         return process(data); 
        }); 
       } 
      }); 
     }); 
    }); 

을하지만 일을하지 않습니다 :

나는 통근의 js 파일에 함수를 선언. 기능으로 이동 한 후에는 내용을 무시하지 않습니다. 부분 마스터 페이지에

Extern file

말하는 링크 : 나는 페이지에 직접 코드를 배치하고있어 경우

... 
<script src="~/Scripts/Login.js?v.3.0"></script> 
... 
<div class="container"> 
     @RenderBody() 
</div> 
... 

그것은 단지 작업을 시작합니다.

on page

문제가 무엇입니까?

감사합니다. 요는 클라이언트 측에서 ~ 사용할 수 없습니다

답변

3

는, 당신이 <script runat="server">

<script src="~/Scripts/Login.js?v.3.0"></script> 

를 사용 그것은 당신이 그것을 잘못된 경로를 제공하는 것이 매우 가능성이 높습니다 경우에만 작동하는 ASP 특정 기능입니다. 네트워크 탭을보고 해당 스크립트에 대한 요청이

<script src="/Scripts/Login.js?v.3.0"></script> 

내가 문제가 해결 slash(/) vs tilde slash (~/) in style sheet path in asp.net

+0

그러나 디버그 노드는 js 파일과 함수에 있으며, onclick과 같은 태그에서 직접 지정했습니다. –

+0

시도했지만 작동하지 않습니다. –

+0

"시도했는데 작동하지 않습니다."라는 말은별로 좋지 않습니다.네트워크 탭에서 보았습니까? 페이지에서 실제로 스크립트를 찾고 있습니까? 99 %의 기회가 아니라면 올바른 길을 제시해야합니다. 파기를하고 어떻게 작동하지 않는지, 브라우저가 가져 오려고하는 실제 해결 된 URL은 무엇인가? 스크립트를 호스팅하는 페이지의 URL은 무엇입니까? 스크립트의 실제 위치는 무엇입니까? 당신이 대답하지 않은 많은 질문들이 ... –

0

참조하십시오

을 일해야합니다. Juan Mendez도 마찬가지였습니다. 문제는 스크립트 파일에 링크되어 있습니다.

public class BundleConfig 
    { 
     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
         "~/Scripts/jquery-*")); 

      bundles.Add(new ScriptBundle("~/bundles/login").Include(
         "~/Scripts/Login.js")); 

      bundles.Add(new ScriptBundle("~/bundles/bootstrapJS").Include(
         "~/Scripts/bootstrap*")); 

      bundles.Add(new StyleBundle("~/bundles/ProfitStyle") 
          .Include("~/Content/ProfitStyle.css")); 

      bundles.Add(new StyleBundle("~/bundles/bootstrapCSS") 
          .Include("~/Content/bootstrap*")); 
     } 
    } 

가 여기에 우리가 우리의 콘텐츠 파일에 번들 등록 : 대신 <script src ....>...</script>

의이 같은 코드로 App_Start 폴더에 파일 BundleConfig.cs)을 bundling

한 만들기입니다.

2) 추가 코드 줄에서의 Global.asax에 초기화 번들 만들기 : 우리가 필요로하는

BundleConfig.RegisterBundles(BundleTable.Bundles); 

3) 그리고 파일에 방금 추가 링크 :

@Scripts.Render("~/bundles/jquery") 
@Scripts.Render("~/bundles/login") 
@Scripts.Render("~/bundles/bootstrap") 
@Styles.Render("~/bundles/bootstrapCSS") 
@Styles.Render("~/bundles/ProfitStyle") 

SORRY, JUAN

0

다른보기의 경우 다음 코드를 작성하십시오.

관련 문제