ASP .NET MVC 2. Ajax选项中的InsertionMode.Replace不能正常工作

时间:2011-05-12 17:58:56

标签: c# asp.net asp.net-mvc ajax

我正在尝试在表单提交后替换<div>内容。这是代码(它是局部视图):

    <% using (Ajax.BeginForm("Authenticate", "User", new AjaxOptions { HttpMethod = "post", UpdateTargetId = "authPanel", InsertionMode = InsertionMode.Replace}))
{%>
    <label>Username</label><%= Html.ValidatedTextBoxFor(username => Model.UserAuthienficateDto.Username, false) %>
    <label>Password</label><%= Html.ValidatedTextBoxFor(password => Model.UserAuthienficateDto.Password, false) %>
    <input name="Input" type="submit" class="button" value="Authenticate" />
<%}%>
<div id="authPanel">
<ul>
    <% if (HttpContext.Current.User.Identity.IsAuthenticated)
    {%>
        <li class="nonregister">Logged in as <%=HttpContext.Current.User.Identity.Name%></li>
        <li class="register"><%= Html.ActionLink("Logout", "Logout", "User")%></li>
    <%
        }%>
    <% else
    {%>
        <li class="nonregister">Not a member &nbsp;?</li>
        <li id="userRegisterDialogOpener" class="register">Sign up now!</li>
    <%}%>
</ul>
</div>

问题是,在表单提交后,我会重新呈现整个局部视图。此外,所有结果都在旧的上面呈现(虽然它们有一些偏移)。为什么InsertionMode.Replace无法正常工作? Mant事先感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我已经通过将form和authPanel分成不同的部分视图来解决了这个问题。