Я бы хотел показать сообщение о состоянии пользователю после обновления страницы профиля, чтобы указать, было ли это успешным или нет. Вот что у меня есть:возвращение сообщения об успешном завершении/сбое для просмотра после обновления базы данных
Контроллер
[HttpPost]
public ActionResult Profiles(UserProfile model)
{
try
{
_userRepository.UpdateUserProfile(model);
ViewBag.Message = "Success";
}
catch
{
ViewBag.Message = "Failure";
}
return View();
}
База данных вызовов
public void UpdateUserProfile(UserProfile user)
{
using (var connection = new SqlConnection(SQLSettings.GetConnectionString()))
{
var p = new DynamicParameters();
p.Add("@Id", user.Id);
p.Add("@City", user.City);
p.Add("@State", user.State);
connection.Execute("UpdateUserProfile", p, commandType: CommandType.StoredProcedure);
}
}
VIEW
@if (ViewBag.Message == "Success")
{
<div class="alert alert-success"><strong><span class="glyphicon glyphicon-check"></span> Your profile has been updated.</strong></div>
}
@if (ViewBag.Message == "Failure")
{
<div class="alert alert-danger"><span class="glyphicon glyphicon-alert"></span><strong> Error, please try again.</strong></div>
}
Whil e, похоже, это работает для меня, я предполагаю, что существует более логичный путь?
Что вы подразумеваете под «более логичным способом»? Здесь нет ничего плохого в вашем коде. –
Вы должны действительно передать модель на свой взгляд, а не использовать ViewBag. – DavidG
Я предполагаю, что я не был уверен, должен ли 'try-catch' находиться в контроллере или в фактическом методе, вызывающем вызов db, и возвращать отсюда успех или ошибку? – PixelPaul