Я создаю веб-приложение для обмена сообщениями в ASP.NET, и у меня возникают некоторые проблемы при отображении сообщения об ошибке пользователю, если он отправляет сообщение и что-то не так.
Пользователь может просматривать профили людей и затем нажимать «отправить сообщение». Следующее действие называется (url is / message / create? To = username) и показывает им страницу, где они могут ввести свое сообщение и отправить его:
public ActionResult Create(string to)
{
ViewData["recipientUsername"] = to;
return View();
}
На отображаемой странице имя пользователя вводится в скрытое поле ввода. Когда пользователь нажимает кнопку «отправить»:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection, string message)
{
try
{
//do message stuff that errors out
}
catch
{
ModelState.AddModelErrors(message.GetRuleViolations()); //adding errors to modelstate
}
return View();
}
Таким образом, теперь сообщение об ошибке отображается пользователю в порядке, однако URL-адрес изменяется, так как в нем больше нет строки запроса (/ message / create). Опять же, это будет хорошо, за исключением того, что когда пользователь нажимает кнопку обновления, страница выдает ошибку, поскольку действие «Создать» больше не имеет параметра «to».
Так что я предполагаю, что мне нужно как-то поддерживать мою строку запроса. Есть ли способ сделать это или мне нужно использовать другой метод в целом?