2016-03-02 147 views
0

由於一些背景我已經通過VB6然後VB.Net,現在嘗試Bootstrap/MVC與C#所以原諒查詢...我已經搜索過,並一直在YouTube上,但也掙扎一點。我的方法是錯誤的告訴我!運行時錯誤Javascript未定義

目的: 存儲過程運行,在這種情況下,確認用戶名和密碼是否正確。我將要添加插入/編輯到稍後的存儲過程。

期: 當我在網站上運行代碼時,我沒有收到任何錯誤或結果。在調試模式下,我得到:

Unhandled exception at line 133, column 5 in http://localhost:49647/Account/Login 

0x800a1391 - JavaScript runtime error: '$' is undefined 

思考 我不是一個JS程序員,但會以爲我需要添加一些「點心」在某些方面的價值?看着0x800a1391 - JavaScript runtime error: 'jQuery' is undefined我可能需要打電話嗎?

User.cs

using System; 
using System.Data.SqlClient; 
using System.Data; 
using System.Configuration; 

namespace Login.BL 
{ 
    public class User 
    { 
     public int UserID { get; set; } 
     //[Required] 
     public int Username { get; set; } 
     //[Required] 
     public int UserPassword { get; set; } 

    } 
    public class UserBusinessLogic 
    { 
     string conStr = ConfigurationManager.ConnectionStrings["myTaylorWoodrowSQL"].ConnectionString; 
     public int CheckUserLogin(User User) 
     { 
      //Check the user is valid!!!! 
      using (SqlConnection conObj = new SqlConnection(conStr)) 
      { 
       SqlCommand comObj = new SqlCommand("retrieveUserByNameAndPassword", conObj); 
       comObj.CommandType = CommandType.StoredProcedure; 
       comObj.Parameters.Add(new SqlParameter("@Username", User.Username)); 
       comObj.Parameters.Add(new SqlParameter("@Password", User.UserPassword)); 
       conObj.Open(); 
       return Convert.ToInt32(comObj.ExecuteScalar()); 
      } 
     } 
    } 
} 

摘自Login.cshtml我可以發佈完整的代碼

<script> 
    $("#Login").click(function() 
    { 
     var dataObject = { UserName: $("#UserName").val(), Password: $("#Password").val() }; 
     $.ajax({ 
      url:'@Url.Action("Login","User")', 
      type:"POST", 
      data: dataObject, 
      datatype: "json", 
      success: function(result) 
      { 
       if(result.toString()=="Success") 
       { 
        alert(result); 
       } 
       else 
       { 
        alert(result); 
       } 
      }, 
      error: function (result) 
      { 
       alert("Error"); 
      } 
     }); 
    }) 
</script> 
+1

你在腳本之前加入了jquery嗎? – neuhaus

+0

您是否爲jquery添加了''? – OnesimusUnbound

回答

2

JavaScript runtime error: '$' is undefined

意味着jQuery是沒有加載到您的網頁。因此,如果它的默認MVC應用程序將被加載到_Layout page。但是我認爲你已經編寫了登錄頁面而沒有使用默認佈局,所以你可以將這行代碼添加到你的登錄頁面頭部分(如果你正在使用佈局頁面,那麼這個佈局的頭部分),一切都一定很好。

@Scripts.Render("~/bundles/jquery") 

默認的MVC應用程序將有jQuery和下這個名字~/bundles/jquery捆綁驗證相關的文件,這是我們如何使用它,否則,如果它是一個空的應用程序,那麼你必須創建一個新包,或者只添加像這樣將jquery文件引用到頁面。

<script src="~/Scripts/jquery-1.10.2.min.js"></script> 
//note just drag and drop the file into the page and VS will do the work for you of putting the proper URL there. 
+0

謝謝,我已經使用了默認的MVC佈局(或者認爲我做了!但添加了上述兩個,它似乎工作!謝謝 – indofraiser

+0

有一個更好,更清潔的例子,我應該使用@Reddy? – indofraiser

+1

不要同時添加,jquery應該只加載一次。否則它可能會導致問題,而使用一些插件或可能影響您的自定義代碼等 –

1

你似乎沒有運行腳本之前加載了jQuery庫。

有關如何包含它的詳細信息,請參閱https://learn.jquery.com/about-jquery/how-jquery-works/

如果你的jquery.js的本地副本,然後用自己的代碼腳本標記之前插入一行如

<script src="jquery.js"></script> 

這是最好的。

相關問題