Javascript jQuery AJAX和ASP.NET

Javascript jQuery AJAX和ASP.NET,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有个小问题。。。 我有这个asp.net网站。 我有一个菜单,全部用html和css完成。 因此,当我单击home时,ajax会将其他内容加载到指定的div元素中。 工作100% 在加载到div元素的内容中,我有一个按钮。ASP.NET按钮 当我点击按钮时,它会给我一个“资源找不到”错误 一定有什么我遗漏了。如果您不明白,以下是ajax: //Load the Home page on click. $(document).ready(function () { $('.home').

我有个小问题。。。 我有这个asp.net网站。 我有一个菜单,全部用html和css完成。 因此,当我单击home时,ajax会将其他内容加载到指定的div元素中。 工作100%

在加载到div元素的内容中,我有一个按钮。ASP.NET按钮

当我点击按钮时,它会给我一个“资源找不到”错误

一定有什么我遗漏了。如果您不明白,以下是ajax:

//Load the Home page on click.
$(document).ready(function () {
    $('.home').click(function () {
        $("#content").load("html/home/home.aspx");
    });
});
现在,加载到content div的aspx页面显示一个按钮btnAdd:

<asp:Panel ID="pnlAddNewBlog" runat="server">
    <asp:TextBox ID="txtAddNewBlog" runat="server" TextMode="MultiLine"></asp:TextBox>
    <br />
    <asp:Button ID="btnAdd" runat="server" Text="Add" />
</asp:Panel>


当我点击那个按钮时,错误就出现了


我想要实现的是:当用户单击按钮时,txtAddNewBlog中的文本被添加到数据库中。现在我可以用C#实现这一点了。。。但如果这个错误妨碍了我的话就不会了。有什么想法吗?

问题在于创建的
表单。当您发出该请求时,ASP.NET将生成一个表单,其目标是
home.aspx
,而不是它的完整路径。但是您正在将该表单转储到一个不同级别的HTML页面上

当您进行表单发布时,它会尝试发布到
home.aspx
,相对于浏览器认为的位置,这是两个级别,但它找不到它


我不知道是否有一个好的方法可以做到这一点-ASP.NET不是用来处理这种事情的。你可以做一个IFRAME。您可以将
home.aspx
内容包装到用户控件中,并将ASP.NET表单保留在外部页面上。或者,您可以操纵表单的目标,以便将其发布到正确的位置。但是我认为这些都不是什么有趣的事。

是否存在
html/home/home.aspx
?尝试查看浏览器正在发送的网络请求。导航到该URL以确保它存在。是的,它存在,因为ajax将home.aspx中的所有内容加载到#content中,我可以看到它。但当我点击按钮时。当我没有ajax加载内容时,这就可以工作了。。。但是当ajax出现时,它就不再工作了,
#内容
是否放在其他表单中?如果是,则在加载另一个页面时会破坏html结构。因此,最好创建webforms并“响应.重定向”它们,然后重新加载整个页面???我的意见是,是的,在当前的体系结构中,最好是实际重定向,而不是AJAX。用户必须处理页面的重新加载,但大多数web仍然是这样工作的。如果您想避免这种情况,我建议您构建一个没有ASP.NET WebForms页面生命周期的解决方案-单页面应用程序通常非常javascript密集,因此该体系结构与传统WebForms应用程序非常不同。您的服务器代码可以处理构建传统的标记和帖子,为客户机代码留下导航。