简体   繁体   English

在 ASP.NET MVC 中实施 AJAX 结果后,如何在 html 部分显示 ViewBag 消息?

[英]How can I show ViewBag message in html part after implementing AJAX result in ASP.NET MVC?

I have an issue about showing a ViewBag message with respect to the result of a Contract function.我有一个关于显示与合同 function 的结果有关的 ViewBag 消息的问题。 I wrote some codes to cope with this process but I cannot show the message in the HTML part.我写了一些代码来处理这个过程,但我无法在 HTML 部分显示消息。 What code should I write in the success part of the AJAX process? AJAX流程的成功部分应该写什么代码?

Here is my Html part shown below.这是我的 Html 零件,如下所示。

<div class="my-3">
        <div class="error-message">@ViewBag.Error</div>
        <div class="sent-message">@ViewBag.Success</div>
</div>

Here is my Contract function method shown below.这是我的合同 function 方法,如下所示。

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Contract(string nameSurname = null, string email = null, string subject = null, string message = null)
        {

        if (nameSurname != null && email != null) 
        {
            SmtpClient smtpClient = new SmtpClient("smtp.gmail.com");
            smtpClient.Port = 587;

            smtpClient.Credentials = new System.Net.NetworkCredential("gmail address", "gmail address password");
            // smtpClient.UseDefaultCredentials = true; // uncomment if you don't want to use the network credentials
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtpClient.EnableSsl = true;

            MailMessage mail = new MailMessage();
            mail.Subject = subject;
            mail.IsBodyHtml = true;
            mail.Body = message;

            //Setting From , To and CC
            mail.From = new MailAddress(email);
            mail.To.Add(new MailAddress("gmail address"));

            smtpClient.Send(mail);
            ViewBag.Success = "Success";
        }
        else
        {
            ViewBag.Error = "Error";
        }
        return View();
}

Here is my ajax part shown below.这是我的 ajax 零件,如下所示。

<script type="text/javascript">

        $(document).ready(function () {

            $("#submitButton").click(function () {

                var nameSurname = $("#nameSurname").val();
                var email = $("#email").val();
                var subject = $("#subject").val();
                var message = $("#message").val();

                var form = $('#contactForm');
                var token = $('input[name="__RequestVerificationToken"]', form).val();

                $.ajax({
                    url: '/Home/Contract/',
                    data: {
                        __RequestVerificationToken: token,
                        nameSurname: nameSurname, email: email, subject: subject, message: message
                    },
                    type: 'POST',
                    success: function (data) {
                        // code
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                       alert('custom message. Error: ' + errorThrown);
                    }
                });
            });
    })

</script>

Here is my solution shoen below.下面是我的解决方案。

html part. html 零件。

<div class="my-3">

                            @if (ViewBag.Success != null)
                            {
                                <div class="alert alert-success" role="alert">
                                    @ViewBag.Success
                                </div>
                            }

                            @if (ViewBag.Error != null)
                            {
                                <div class="alert alert-danger" role="alert">
                                    @ViewBag.Error
                                </div>
                            }

                        </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么Viewbag无法显示在asp.net MVC视图页面中? - Why Viewbag not show in asp.net mvc view page? 调用AJAX(ASP.NET MVC)后无法显示值 - Cannot show value after AJAX call (ASP.NET MVC) 如何在ASP.NET中隐藏/显示动态创建的HTML元素 - How can I hide/show an HTML element created dynamically after in ASP.NET 在jQuery Ajax调用之后,应用程序无法导航到我要显示的ASP.NET MVC视图。 - After jQuery Ajax invocation call , the application Fails to navigate to the ASP.NET MVC view that I want to show 使用ViewBag-ASP.NET MVC - using ViewBag - asp.net mvc 在ASP.Net MVC中,如何在单击时显示和隐藏3个@ Html.ActionLink按钮? - Within ASP.Net MVC, how do I show and hide 3 @Html.ActionLink buttons on click? 在ASP.NET MVC中使用jquery ajax提交帖子后更新视图的一部分 - Updating part of view after submitting a post using jquery ajax in asp.net mvc 如何将视图中创建的变量用作操作结果中的参数? (ASP.NET MVC) - How can i use a variable created within a view as an argument within an action result? (ASP.NET MVC) 如何使用JavaScript从ASP.Net MVC中的表单获取“验证消息”的值? - How can I get the value of Validation Message from form in ASP.Net MVC, using javascript? 如何使用Asp.Net MVC Ajax的UpdateTargetId更新多个DOM元素 - How can I update multiple DOM elements using Asp.Net MVC Ajax's UpdateTargetId
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM