回发后用MVC C#显示弹出确认消息

时间:2014-05-11 10:04:38

标签: c# asp.net-mvc dialog showmodaldialog

将MVC框架与C#编码结合使用。视图以标准HTML代码编写。 一旦用户点击提交按钮

,我需要一条确认消息“您的消息已被发送”

这是控制器:

public ActionResult Index(ContactViewModel contactVM){
        if (!ModelState.IsValid)
        {
            string url = Request.UrlReferrer.AbsolutePath+ "#contact";

            return View();
        }
        else
        {
            var contact = new Contact
            {
                Name = contactVM.Name,
                Email = contactVM.Email,
                Subject = contactVM.Subject,
                Message = contactVM.Message
            };
            new Email().Send(contact);
            return RedirectToAction("Index");
        }

以下是视图:

<input type="submit" class="submit_btn left" name="Submit" id="submit" value="Submit"/>
<input type="reset" class="submit_btn right" name="Reset" id="reset" value="Reset" />

请帮忙。

3 个答案:

答案 0 :(得分:13)

而不是RedirectToAction(),请返回View

    new Email().Send(contact);

    ViewBag.Message = "Message Sent"; 

    return View();

在视图中:

@if(ViewBag.Message != null)
{
<script>

$(document).ready(function(){

alert('@ViewBag.Message');

});

</script>

}

答案 1 :(得分:2)

添加内部控制器

        ViewBag.IsEmailSent=true;



public ActionResult Index(ContactViewModel contactVM){
            if (!ModelState.IsValid)
            {
                string url = Request.UrlReferrer.AbsolutePath+ "#contact";

                return View();
            }
            else
            {
                var contact = new Contact
                {
                    Name = contactVM.Name,
                    Email = contactVM.Email,
                    Subject = contactVM.Subject,
                    Message = contactVM.Message
                };
                new Email().Send(contact);
                ViewBag.IsEmailSent=true;
                return RedirectToAction("Index");
            }

Index.cshtml页面

   @if(ViewBag.IsEmailSent)
    {
    <script>
$(function(){
     $("#successModal").modal('show'); });
    </script>
    }

答案 2 :(得分:0)

将结果(从RedirectToAction("Index"))更改为提供确认的视图。

如果您不希望拥有的内容主要是现有网页的副本(例如Index),则传递包含ShowConfirmation标记的对象,并在索引视图有一些逻辑来显示确认是否设置了该标志。