【问题标题】:Returning error message using SweetAlert使用 SweetAlert 返回错误消息
【发布时间】:2018-02-26 14:10:56
【问题描述】:

AccountController 中,我注意到示例注册代码捕获UserFriendlyException 并在ViewBag 中返回错误消息。

如何从 SweetAlert 中退回它?

[HttpPost]
public virtual async Task<ActionResult> Register(RegisterViewModel model)
{
    try
    {
        // Code omitted for brevity
    }
    catch (UserFriendlyException ex)
    {
        ViewBag.ErrorMessage = ex.Message; // I need to return this using SweetAlert

        return View("Register", model);
    }
}

html代码

  <form action="javascript:;" id="register-form" class="login-form" method="post">
        <div class="alert alert-danger display-hide">
            <button class="close" data-close="alert"></button>
            <span>Enter required fields. </span>
        </div>

        @if (@ViewBag.ErrorMessage != null)
        {
            <div class="alert alert-danger">
                <i class="fa fa-warning"></i> @ViewBag.ErrorMessage
            </div>
           <script>abp.message.error("@ViewBag.ErrorMessage");</script>
            <input type="hidden" value=" @ViewBag.ErrorMessage" id="hf_error" >
        }



        <div class="row">
            <div class="col-xs-12">

                <input type="text" class="form-control form-control-solid placeholder-no-fix form-group" autocomplete="off" name="name" placeholder="@L("Name")" required autofocus id="name">
            </div>
            <div class="col-xs-12">
                <input class="form-control form-control-solid placeholder-no-fix form-group" type="text" autocomplete="off" placeholder="@L("Surname")" name="surname" required id="surname"  />
            </div>

            <div class="col-xs-12">

                <input type="password" class="form-control form-control-solid placeholder-no-fix form-group" autocomplete="off" name="password" placeholder="@L("Password")" required autofocus id="password">
            </div>

        </div>
        <div class="row">
            <div class="col-sm-6 text-left">
                <div class="forgot-password" style="margin-top: 5px;">
                    <a href="@Url.Action("Login")" id="register-btnd" class="forget-password">Login To Your Account</a>
                </div>
            </div>
            <div class="col-sm-6 text-right">
                <button class="btn green" id="btnSubmit" type="submit">Register</button>
            </div>
            <hr />
        </div>
    </form>

下面的jquery函数

 var jsonObject = {
            Name: name,
            Surname: surname,
            //EmailAddress: email,
           // UserName: username,
            Password: password
        };


        abp.ajax({
            url: abp.appPath + 'Account/Register',
            type: 'POST',
            data: JSON.stringify(jsonObject)
        }).done(function(data) {

            alert("done");


        }).fail(function(data) {

           alert("fail");
        });

【问题讨论】:

    标签: c# viewbag sweetalert asp.net-boilerplate


    【解决方案1】:

    由于该方法返回 View 结果,因此使用 ViewBag 作为错误消息是有意义的。

    要显示 SweetAlert,请在 @section Scripts 中添加以下内容 Register.cshtml

    @section Scripts {
        // ...
    
        @if (ViewBag.ErrorMessage != null)
        {
            <script>abp.message.error("@ViewBag.ErrorMessage");</script>
          /*<script>swal("@ViewBag.ErrorMessage", "", "error");</script>*/
        }
    }
    

    &lt;script&gt; 两个标签触发相同的弹出窗口。

    【讨论】:

    • 我知道该示例没有脚本,但我想以与登录页面相同的方式创建该页面
    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 2018-07-09
    • 2014-03-20
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 2012-09-19
    • 2011-08-27
    相关资源
    最近更新 更多