我正在處理一個具有註冊表單的應用程序,我必須向用戶顯示用戶名是否存在。 我正在使用asp.net mvc3並計劃使用AJAX來實現此目的。如何在asp.net中使用ajax檢查用戶名是否已經存在?
我有一個表格
<tr>
<td>User Name*</td>
<td><input id="UserName" name="UserName" type="text" onblur="check(this.value);"/></td>
<td id= "UName"></td>
</tr>
它調用具有folling內容
function check(User) {
...
var url = "/UserNameCheck/Index";
url += "?User=" + User;
xmlHttp.onreadystatechange = state_Change;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
function state_Change() {
if (xmlhttp.readyState == 4) {// 4 = "Response loaded"
if (xmlhttp.status == 200) {// 200 = Response Error Free
document.getElementById("UName").innerHTML = xmlHttp.responseText
}
else {
alert("Problem retrieving XML data");
}
}
}
我驚動了用戶名和我得到的是我已經輸入了正確的值.js文件。現在,URL是/ UserNameCheck/Index,其中UserNameCheck是一個控制器,Index是其中的一個方法。
控制器有這個代碼。
public ActionResult Index(string User)
{
string UserName;
try
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
UserName = Request.QueryString["User"];
ConnectionPackage.ConnectionClass cc = new ConnectionPackage.ConnectionClass();
conn = cc.con;
string sql = "Select UserName FROM UserDetails where UserName = '" + UserName + "'";
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.Text;
object p = cmd.ExecuteScalar();
cmd.ExecuteNonQuery();
string u = (string)p;
if (u.Length==0 || u.Equals("NULL") || u.Equals("null")||u.Equals("Null"))
{
return View();
}
return null;
}
catch (Exception ex){
}
和視圖具有
String buffer = " <table><tr><td id = 'UName' >" This user name already exists. Please select some other unser name.
buffer = buffer + "</td></tr></table>";
response.getWriter().println(buffer);
我也試着寫
Response.Clear();
Response.Write("UserName already exists. Please select another UserName");
Response.End();
而不是返回查看。 但在這兩種情況下,即使我輸入了數據庫中已經存在的用戶名,我也沒有收到用戶名存在的消息。
連接字符串適用於插入數據庫,所以我不認爲有問題。我在js文件中提到的URL有問題嗎?或者我的整個方法錯了? 我基本上來自java背景,所以不太瞭解asp.net。請幫忙。
非常感謝您提前。
非常感謝你。但老實說,我以前沒有使用過jQuery。你能否提供任何好的資源供我學習。如果它也有實際的例子,那將會很棒。 非常感謝你。 – Sathya 2012-01-07 06:02:22
@Sathya以最有信譽的來源開始 - 它是業主。 http://docs.jquery.com/Tutorials - 我認爲你會發現它非常易於使用......當你完成一兩個教程時......看看我提到的「live」和「keyup」事件和谷歌幾個例子。這是蛋糕。 – 2012-01-09 18:08:07