Как использовать окно сообщений в контроллере MVC?

Я создал приложение mvc после завершения регистрации , я перенаправлен на страницу "Спасибо".

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

 [HttpPost]
        public ActionResult Enquiry(Enquiry enquiry)
        {
            if (ModelState.IsValid)
            {
                dbEntities.Enquiries.AddObject(enquiry);
                dbEntities.SaveChanges();
                enquiry.SendEnquiryEmail(enquiry);

                return RedirectToAction("Thankyou"); 
            }
            return View(enquiry);
        }

        //redirect to thankyou page
        public ActionResult Thankyou()
        {
            return View();
        }

5 ответов


@Reynolds

ваш ответ идеален.

в Razor можно заменить следующую строку

alert("@TempData[alertMessage]");

следующим

alert('@TempData["alertMessage"]');

PS. Обратите внимание на цитаты


чтобы убедиться, что ваше "предупреждение" в вашем представлении отображается только тогда, когда вы намереваетесь (перенаправление из вашего метода ThankYou), а не когда кто-то случайно переходит к вашему представлению "ThankYou"

//redirect to thankyou page
public ActionResult Thankyou()
{
    TempData["alertMessage"] = "Whatever you want to alert the user with";
    return View();
}

тогда в вашем представлении "Спасибо" это:

   if(null != TempData["alertMessage"])
   {
      <script type="text/javascript">
       alert("@TempData[alertMessage]");
      </script>
   }

Это напишет сценарий, как обычно для любого JavaScript. Надеюсь, это поможет!


в контроллере используйте этот код

public ActionResult Edit(CoverLetterModel model)
{
    TempData["msg"] = "<script>alert('Change succesfully');</script>";
}

in view используйте этот код

@Html.Raw(TempData["msg"])

похоже, вы можете отобразить окно сообщения "спасибо" в представлении, где пользователь вводит регистрационные данные?

Если это так, вам нужно отправить AJAX в действие, а затем обработать сообщение об успехе/неудаче, которое возвращается из действия на клиентской стороне javascript.

одно дело иметь в виду, если вы делаете это вы не хотите, чтобы ваши пользователи, чтобы нажать кнопку "отправить" несколько раз, так что вы можете скрыть или отключить его после первого щелчка и показать/включить его при ошибке проверки...


в интернете вам нужно будет использовать Javascript для отображения окна сообщения. Синтаксис (чтобы войти в ваше представление в его простейшей форме)

Alert("Hello There!");

вы не можете вызвать это непосредственно с вашего контроллера. Просто поместите приведенный выше код в представление ThankYou.

Это очень просто, но должно дать вам понятие.