【问题标题】:ASP .NET MVC AJAX BeginForm InsertionMode.Replace Not Working wellASP .NET MVC AJAX BeginForm InsertionMode.Replace 不能正常工作
【发布时间】:2011-04-29 09:59:10
【问题描述】:

我可以在文本字段中输入任何内容时看到结果。结果确实进入了我想要的 DIV。但是,我查看了页面的源代码,没有看到替换元素。

例如,我输入'aaaaaaaaaaaaaaaa',点击提交按钮,我看到的结果为 你输入了aaaaaaaaaaaaaaa;但是右键开源,看不到它的html元素

因为我在其他地方使用 Accordion,Accordion 不能很好地工作,因为 JavaScript 看不到从 Action 返回的 html 元素。

我该怎么做才能解决它?

观点

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<h2>Home Page</h2>
<%using (Ajax.BeginForm("Index", new AjaxOptions { UpdateTargetId = "HomeResult", InsertionMode = InsertionMode.Replace }))
  { %>
    <%= Html.TextBox("query", null, new {size=40}) %>
    <input type="submit" value="Home Submit" />
<%} %>

<div id="HomeResult"> 
    <h2>Home result goes here.</h2>
    <%Html.RenderPartial("PartialResult", ViewData.Model); %>
</div>

控制器动作

    public ActionResult Index()
    {            
        if (Request.IsAjaxRequest())
        {
            ViewData["Message"] = "Partial View Logon";

            return PartialView("PartialResult", Request.Params.Get("query"));
        }
        return View();
    }

部分结果视图

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

<div>
<% if (Model != null) %>
<% { %>
    <h1>
        You entered <%= Model.ToString() %>
    </h1>
<% } %>
</div>

【问题讨论】:

    标签: jquery ajax asp.net-mvc forms replace


    【解决方案1】:

    右键开源

    将在页面下载时为您提供页面源,而不反映页面加载后对 DOM 所做的更改。或许您应该考虑使用合适的 Web 调试器,例如 FireBug

    一旦你能看到真正发生的事情,你可能会更好地找出哪里出了问题。

    【讨论】:

    • 谢谢。我添加 RunAccordion jquery javascript 函数并在 Ajax OnSuccess 事件中调用它。它有效。
    【解决方案2】:

    我认为您正在寻找错误的路径来解决您的问题。您正在查看已加载 DOM 的源代码,而不是更新后的 DOM。我说使用 Firefox/Chrome 和 Web 开发人员工具栏,它允许您查看“生成”的源代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-16
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      相关资源
      最近更新 更多