首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Ajax.BeginForm呈现完整视图

如何使用Ajax.BeginForm呈现完整视图
EN

Stack Overflow用户
提问于 2010-02-04 01:16:20
回答 1查看 1.6K关注 0票数 2

我有一个局部视图,它有一个带有UpdateTargetID集的Ajax.BeginForm。当表单上的验证失败时,更新目标id将被替换为验证错误,但是当没有验证错误时,用户应该被重定向到一个新页面。

我的局部视图中的代码是

代码语言:javascript
运行
复制
<div id="div_UID">
    <% using (Ajax.BeginForm("FindChildByUID", new AjaxOptions { UpdateTargetId = "div_UID" } ))
       {%>
            <p>
                <label>UID:</label>
                <%= Html.TextBox("UID") %>
            </p>
            <input type="submit" value="Continue" />
     <% } %>
 </div>
</pre>

我的控制器中的代码如下

代码语言:javascript
运行
复制
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult FindChildByUID(Student student)
    {

        Student matchingStudent = _studentService.FindChildByUID(student.UID);
        if (matchingStudent == null)
        {
            ModelState.AddModelError("UID", String.Format("No matching child found for the entered UID: {0}", student.UID));

            return PartialView();

        }
        else
        {
            // full view
            return RedirectToAction("ConfirmChildDetails", matchingStudent);
        }
    }

所以,我一直没有成功地显示它自己的完整视图,因为它似乎总是显示Ajax.BeginForm中指定的UpdateTargetID div中的完整视图。

对如何让它工作有什么建议吗?

谢谢

EN

Stack Overflow用户

发布于 2010-02-04 01:36:21

AJAX post所做的就是发出一个请求,并等待包含html的响应以输入到页面上。配置是这样的,返回的任何html都将被注入到您命名为"div_UID“的div中。

我通常会避免这样的场景,如果帖子的成功结果需要重定向,我会使用传统的帖子。

我想你可以这样做,使用jQuery提交而不是Ajax.BeginForm (或者只是为你的Ajax.BeginForm设置一个回调函数):

代码语言:javascript
运行
复制
function SubmitForm(form) {
    $(form).ajaxSubmit({ target: "#div_to_update", success: CheckValidity });
}

function CheckValidity(responseText) {
    var value = $("#did_process_succeed").val();

    if (value == "True") {
        window.location.replace("url_of_new_action_here");
    }
}

你只需要在你的局部视图中有一个叫做"did_process_succeed“的隐藏字段,并根据你的控制器中的一些逻辑来设置True或False的值。

可能还有其他方法。也许其他人会加入进来。我希望这对现在有帮助。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2193835

复制
相关文章

相似问题

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