首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ajax加载ValidationSummary

使用ajax加载ValidationSummary
EN

Stack Overflow用户
提问于 2013-04-03 14:45:50
回答 1查看 1.7K关注 0票数 0

如何使用ajax加载ValidationSummary?我试着使用MVC的现成成员资格。

简单的问题,但我被困住了。

代码语言:javascript
复制
[HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    [RecaptchaControlMvc.CaptchaValidator]
    public ActionResult Register(RegisterModel model, bool captchaValid, string captchaErrorMessage)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
                try
                {
                    if (captchaValid)
                    {
                        WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                        WebSecurity.Login(model.UserName, model.Password);
                        return RedirectToAction("Index", "Home");
                    }
                    ModelState.AddModelError("", captchaErrorMessage);
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }

        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

查看:

代码语言:javascript
复制
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary()

<fieldset>
    <legend>Registration Form</legend>
    <ol>
        <li>
            @Html.LabelFor(m => m.UserName)
            @Html.TextBoxFor(m => m.UserName)
            @Html.ValidationMessageFor(m => m.UserName)
            <input type="hidden" id ="some" value=""/>
        </li>etc.

我不想重定向每一次,例如,如果用户名存在或等。

EN

回答 1

Stack Overflow用户

发布于 2013-04-03 15:40:58

为此,可以将部分视图返回为html。呈现的部分将包含模型状态错误,因此在返回为html时将显示。

示例

可以创建一个名为AjaxResult的类。

代码语言:javascript
复制
public class AjaxResult
{
    public string Html { get; set; }
    public bool Success { get; set; }
}

然后,在ajax调用的成功函数中,可以将html附加到适当的元素。例如:

代码语言:javascript
复制
$.ajax({
    url: 'http://bacon/receive', 
    dataType: "json",
    type: "POST",
    error: function () {
    },
    success: function (data) {
        if (data.Success) {
            $('body').append(data.Html);
        }
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15790574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档