ajax - 如何将 Html.BeginForm 变成 Ajax.BeginForm

标签 ajax asp.net-mvc url-redirection

以下有效,但如何将其转换为 Ajax 调用?

<section id="loginWindow">
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl })) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset>
    <legend>Log in Form</legend>
    <ol>
        <li>
            @Html.LabelFor(m => m.UserName)
            @Html.TextBoxFor(m => m.UserName)
            @Html.ValidationMessageFor(m => m.UserName)
        </li>
        <li>
            @Html.LabelFor(m => m.Password)
            @Html.PasswordFor(m => m.Password)
            @Html.ValidationMessageFor(m => m.Password)
        </li>
        <li>
            @Html.CheckBoxFor(m => m.RememberMe)
            @Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
        </li>
    </ol>
    <input type="submit" value="Log in" />
</fieldset>

}
</section>

最佳答案

将您的表单更改为:

@using (Ajax.BeginForm("Login", "Account", new AjaxOptions { OnSuccess = "onSuccess" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Log in Form</legend>
        <ol>
            <li>
                @Html.LabelFor(m => m.UserName)
                @Html.TextBoxFor(m => m.UserName)
                @Html.ValidationMessageFor(m => m.UserName)
            </li>
            <li>
                @Html.LabelFor(m => m.Password)
                @Html.PasswordFor(m => m.Password)
                @Html.ValidationMessageFor(m => m.Password)
            </li>
            <li>
                @Html.CheckBoxFor(m => m.RememberMe)
                @Html.LabelFor(m => m.RememberMe, new { @class = "checkbox" })
            </li>
        </ol>
        <input type="submit" value="Log in" />
    </fieldset>
}

如果登录成功,请确保您的登录操作返回重定向 URL,并将此脚本添加到您的 View 中:
<script type="text/javascript">
    function onSuccess(result) {
        if(result.url) {
            window.location.href = result.url;
        }
    }
</script>

关于ajax - 如何将 Html.BeginForm 变成 Ajax.BeginForm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551571/

相关文章:

jquery - 从本地 Web 服务器而非本地文件系统运行时,AJAX 发布时出错

c# - 将上传文件与表单数据一起发送

html - Razor 语法导致 jQuery Mobile 表单元素丢失样式

jquery - 发布 ASP.NET MVC 表单之前进行验证

java - 使用ajax post将json从js发送到 Controller

javascript - 如何将每个循环变量值插入数组

c# - 将查询字符串值绑定(bind)到字典

php - 语言重定向适用于桌面但不适用于移动浏览器

java - 如何在java中为google设置OAuth2的重定向URI

Django:当目标 URL 也是重定向时测试重定向