【问题标题】:Loading an ASP.Net page inside another ASP.Net page using Ajax使用 Ajax 在另一个 ASP.Net 页面中加载一个 ASP.Net 页面
【发布时间】:2012-11-22 08:22:46
【问题描述】:

我设法使用 jquery ajax 在另一个页面的 div 中加载了一个不同的页面。我遇到的问题是,当我单击此子页面内的按钮时,会导致回发到整个父页面。如何强制它只刷新它所在的面板?

还有一件事。我不确定我做的是否正确,但是父页面有自己的带有 runat=server 设置的表单,而在 div 内加载的辅助页面有自己的表单。我无法从后者中删除表单,因为它会导致错误。

我看过一些 asp.net ajax 教程,但它们不处理加载具有自己的 .net 控件的子页面。谁能指导我一些好的教程?

谢谢!

【问题讨论】:

  • 将 HTML 加载到变量中并使用 ajax 将字符串写入所需位置
  • 将部分加载到页面中,实际上使其成为该页面的一部分,因此在这种情况下,它在页面级别所做的任何事情(如提交)都将在该实体(页面 DOM)上工作。您需要拦截提交以使其仅在您需要影响的部分上起作用。
  • @MarkSchultheiss - 是的,我做到了。我的问题是拦截提交命令。

标签: c# asp.net ajax jquery postback


【解决方案1】:

您需要使用 Id 创建一个空,例如:ajaxDiv

然后你创建一个这样的 jquery 脚本:

 <script type="text/javascript">
    // Called at the loading of a page
        $(document).ready(function () {
    //here you execute an ajax function 
    $.ajax({
                        url: 'the url to retrieve data as string ex : /Webservice/Test',
                        type: 'get',
                        async: true of false,
//if the request is successful, you load the content of your div with the strings you loaded
                        success: function (data) {
                           $("ajaxDiv").html(data);

                        }
                    });

     });
    </script>

提示是将您的页面加载到 ajax 请求中。

【讨论】:

  • 谢谢你。该代码类似于我用来加载子页面的代码。但是如何使子页面中的控件仅影响该页面(而不影响主机页面)?
  • 你使用 ASP.NET MVC 吗?因为有了它,您可以定义“部分视图”,其中包含内部表单和独立于主机页面的模型。如果没有,请尝试仅重新加载 div ajaxDiv 的控件,因此您还需要在局部视图中调用/实现该函数。
  • 我是 ASP.net 新手,对 MVC 不熟悉。我来自经典的 ASP 背景,在使用 AJAX 时,我会通过查询字符串传递命令并重新加载部分视图。我了解 ASP.Net 的工作方式不同。
【解决方案2】:

好的,既然您使用的是 jQuery,那么让我们设置该事件操作。 我假设以下标记:

<button type="submit" id="mySubmitButtonId">Submit</button>

然后,在我的页面上,我有以下 javascript:

$("#mySubmitButtonId").click(function(event) { 
  event.preventDefault(); 
  // do here what you want to do instead including refresh of a section via ajax
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多