2013-07-10 96 views
0

您好!Javascript功能只能在頁面中使用,不能從文件中使用

我的extern js文件聲明函數:

$(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); 
        }); 
       } 
      }); 
     }); 
    }); 

但它沒有工作。進入該功能後,它不會繞過內容。部分母版頁上

Extern file

告訴鏈接:

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

它開始只是工作,如果我在網頁上直接放置此代碼。

on page

什麼問題?

謝謝!

回答

3

呦不能使用~在客戶端,這是一個ASP特定功能,當你使用<script runat="server">

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

這很可能是因爲您給它在錯誤的道路,只有工作。看看你的網絡選項卡,並確保該腳本要求工作

嘗試

<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

我解決了這個問題。同樣,胡安門德斯是對的。問題在於鏈接到腳本文件。取而代之的 <script src ....>...</script>

我是創造bundling

1)創建App_Start文件夾文件BundleConfig.cs使用如下代碼:

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*")); 
     } 
    } 

在這裏,我們登記了我們的內容的文件包。

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

而且,正如其他情況只是在該頁面上寫下這段代碼:

<script src="@Url.Content("~/Scripts/Login.js?v.3.0")"></script>