Как использовать окно сообщения в контроллере MVC? - PullRequest
9 голосов
/ 10 марта 2012

Я создал приложение 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 ]

13 голосов
/ 10 марта 2012

Чтобы убедиться, что ваше «предупреждение» в вашем представлении отображается только тогда, когда вы намереваетесь (перенаправление с вашего метода 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. Надеюсь, это поможет!

5 голосов
/ 14 июня 2014

@ Рейнольдс

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

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

alert("@TempData[alertMessage]");

на следующую

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

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

5 голосов
/ 13 декабря 2013

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

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

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

@Html.Raw(TempData["msg"])
3 голосов
/ 11 марта 2012

Звучит так, как будто вы хотите отобразить окно с сообщением «спасибо» в окне, где пользователь вводит регистрационные данные?

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

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

1 голос
/ 10 марта 2012

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

Alert("Hello There!");

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...