Как вернуть сообщение из моего класса репозитория в мой контроллер, а затем в мое представление asp.net-mvc? - PullRequest
1 голос
/ 17 мая 2010

Я использую это для проверки существующего emailId в моей таблице и вставки его ... Это прекрасно работает, как показать сообщение пользователю, когда он пытается зарегистрироваться с существующим mailId ....

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

и мой контроллер имеет это,

 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);

Любое предложение о том, как показать «EmailID», уже существует для пользователя с asp.net mvc ...

1 Ответ

1 голос
/ 17 мая 2010

Сделайте так, чтобы метод репозитория registerUser возвращал логическое значение, указывающее, обновил ли он базу данных, чтобы действие контроллера стало:

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

и на ваш взгляд показать сообщение:

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

Если вы используете строго типизированное представление, которое рекомендуется, вы можете добавить логическое свойство в модель представления, которое будет указывать, имело ли место обновление базы данных:

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

и в тесте вида значение модели:

<% if (Model.IsEmailExists) { %>
    <div><%= Html.Encode(Model.EmailId) %> already exists</div>
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...