Je travaille sur une application qui a un formulaire d'inscription et je dois afficher à l'utilisateur si le nom d'utilisateur existe ou non. J'utilise asp.net mvc3 et prévoyais d'utiliser AJAX pour y parvenir.Comment vérifier si le nom d'utilisateur existe déjà en utilisant ajax dans asp.net?
J'ai une forme
<tr>
<td>User Name*</td>
<td><input id="UserName" name="UserName" type="text" onblur="check(this.value);"/></td>
<td id= "UName"></td>
</tr>
qui appelle un fichier .js qui a le contenu Fölling
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");
}
}
}
J'alertés le nom d'utilisateur et je reçois la valeur correcte que j'étais entré. Maintenant, l'URL est/UserNameCheck/Index où UserNameCheck est un contrôleur et Index est une méthode dans cela.
Le contrôleur a ce code.
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){
}
et la vue a
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);
J'ai aussi essayé d'écrire
Response.Clear();
Response.Write("UserName already exists. Please select another UserName");
Response.End();
au lieu de retourner View. Mais dans les deux cas, je n'ai reçu aucun message indiquant que le nom d'utilisateur existe bien que j'ai tapé un nom d'utilisateur qui était déjà présent dans la base de données.
La chaîne de connexion fonctionne pour l'insertion dans la base de données, donc je ne pense pas qu'il y ait un problème avec cela. Y at-il un problème avec l'URL que j'ai mentionné dans le fichier js? Ou est-ce que toute mon approche est incorrecte? Je suis fondamentalement d'origine java alors ne sais pas beaucoup sur asp.net. S'il te plaît, aide-moi.
Merci beaucoup d'avance.
Merci beaucoup. Mais honnêtement, je n'ai jamais utilisé jQuery auparavant. Pouvez-vous suggérer de bonnes sources pour que je puisse l'apprendre? Et ce serait génial s'il y avait aussi des exemples concrets. Merci beaucoup encore. – Sathya
@Sathya Commencez avec la source la plus réputée - c'est le propriétaire. http://docs.jquery.com/Tutorials - Je pense que vous le trouverez très facile à utiliser ... quand vous avez terminé avec un ou deux tutoriels ... regardez les événements 'live' et' keyup' dont j'ai parlé et google quelques exemples. C'est un gâteau. –