2010-05-17 9 views
1

J'utilise cela pour vérifier une existante emailId dans ma table et l'insérer ... Il fonctionne très bien comment afficher un message à l'utilisateur quand il tente d'enregistrer avec un mailid existant ....Comment renvoyer un message de ma classe de référentiel à mon contrôleur, puis à ma vue dans asp.net-mvc?

if (!taxidb.Registrations.Where(u => u.EmailId == reg.EmailId).Any()) 
{ 
    taxidb.Registrations.InsertOnSubmit(reg); 
    taxidb.SubmitChanges(); 
} 

et mon contrôleur a cela,

RegistrationBO reg = new RegistrationBO(); 
reg.UserName = collection["UserName"]; 
reg.OrgName = collection["OrgName"]; 
reg.Address = collection["Address"]; 
reg.EmailId = collection["EmailId"]; 
reg.Password = collection["Password"]; 
reg.CreatedDate = System.DateTime.Now; 
reg.IsDeleted = Convert.ToByte(0); 
regrep.registerUser(reg); 

Tout sugesstion comment montrer « EMAILID » existe déjà à l'utilisateur avec asp.net mvc ...

Répondre

1

Faire la méthode de dépôt registerUser retourne une valeur booléenne indiquant si elle a mis à jour la base de données afin que l'action du contrôleur devient:

if (!regrep.registerUser(reg)) 
{ 
    ViewData["message"] = string.Format("{0} already exists", reg.EmailId); 
} 

et dans votre vue affiche le message:

<div><%= Html.Encode(ViewData["message"]) %></div> 

Si vous utilisez un affichage fortement typé qui est recommandé, alors vous pouvez ajouter une propriété booléenne votre modèle de vue qui indiquera si la mise à jour de base de données a eu lieu:

model.EmailId = reg.EmailId; 
model.IsEmailExists = !regrep.registerUser(reg); 
return View(model); 

et dans le test de vue la valeur du modèle:

<% if (Model.IsEmailExists) { %> 
    <div><%= Html.Encode(Model.EmailId) %> already exists</div> 
<% } %>