Перенаправление на представление ответа с моделью не сохраняет свойства модели - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть представление формы, которое отправляет данные формы в действие публикации на контроллере, а затем перенаправляет в другое представление, которое использует логику для отображения успеха или неудачи, но новое представление просто показывает пустые значения для свойств модели.Вот пост-действие:

[HttpPost]
    public ActionResult ContactUs(TTT.Models.ContactUsModel model)
    {
        logger.Info(model.URL + "Contact Us Form submitted");

        var userkey = model.ValidationKey;
        var sessionkey = Session["ContactUsKey"];
        var lastsubmission = Session["ContactUsTime"];
        model.Response = "success";

        //first check if honeypot was populated via a bot and if so send it to the success page without doing anything
        if (model.WorkAddress != "")
        {
            logger.Info("honeypot triggered");
            return View("ContactUsResponse", model);
        }

Я опущу оставшуюся часть контроллера, но

И вот представление, на которое он перенаправляет:

@using TTT.Models
@using Sitecore.Mvc
@model ContactUsModel


 <h1>@Model.Title</h1>
 <div>@Model.Body</div>

  <div>
     @if (@Model.Response == "fail")
      {
          @Model.Failure;
      } else
      {
          @Model.Success;
      }
   </div>

1 Ответ

0 голосов
/ 28 февраля 2019

Вместо того, чтобы возвращать новый вид, вызовите RedirectToAction и верните новый вид из этого контроллера.

[HttpPost]
public ActionResult ContactUs(TTT.Models.ContactUsModel model)
{
    //--- Code omitted for brevity

    if (model.WorkAddress != "")
    {
        logger.Info("honeypot triggered");
        return RedirectToAction("ContactUsResponse", new { response = model });
    }
}

public ActionResult ContactUsResponse(TTT.Models.ContactUsModel response) 
{
    return View(model)
}
...