jQuery.Load(.aspx)无效

时间:2016-11-14 20:26:34

标签: jquery asp.net

我试图将一个aspx文件加载到div中,但如果aspx文件具有asp.net控件,它将无法工作。 (这有点重要。)如果我只有html控件,它可以正常工作,但不能使用runat =" server"。我已经将主文件和.aspx文件剥离到几乎没有。此外,后面的代码不会捕获传入的数据 - PageSize。即使只使用html元素也没有。为什么赢得aspx页面加载?我已经尝试取出所有的html标签,将数据传递给" PageSize":#34; 50"," PageSize":50和其他组合。没运气。

<%@ Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs"     Inherits="jQueryTutorial.SiteMaster" %>

<!DOCTYPE html>
<html lang="en">
<head runat="server">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title></title>
<webopt:BundleReference runat="server" Path="~/Content/css" />
<script src="Scripts/jquery-1.10.2.js"></script>

<script type="text/javascript">

    $(document).ready(function () {
        $('#MyButton').click(function () {
            $('#OutputDiv').load('GetCustomers.aspx', { PageSize: 10 },
                function (response, status, xhr)
                {
                    if (status == "error")
                        alert(xhr.error);
                    //else
                    //    alert('Loaded');
                });
        });
    });

</script>
</head>
<body>
    <button id="MyButton">Click to get HTML</button>
    <div id="OutputDiv"></div>
</body>
</html>

要加载的.aspx文件:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetCustomers.aspx.cs" Inherits="jQueryTutorial.GetCustomers" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="button" value="Press me" />
<input id="abc" />
<%--    <asp:Button ID="Button1" Text="Button" runat="server" />--%>
</body>
</html>

要加载的asps文件后面的代码:

using System;

namespace jQueryTutorial
{
public partial class GetCustomers : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var pageSize = 50;
        if (Request["PageSize"] != null) 
            pageSize = Int32.Parse(Request["PageSize"]);
    }
}
}

2 个答案:

答案 0 :(得分:0)

我收到了错误消息,但发现这是由于语法错误造成的。我修复了错误,但仍无法使用$ .Load()方法读取后面代码中的PageSize数据。

$('#OutputDiv').load('GetCustomers.aspx', { PageSize: 10 });

但是,我使用了$ .get()

$.get('GetCustomers.aspx', { PageSize: 10 }, function (data) {
    $('#OutputDiv').html(data);
});

这很有效。我仍然想知道为什么使用$ .Load()不会传递PageSize数据。

谢谢。

答案 1 :(得分:0)

如前所述,我正在关注Pluralsight jQuery Fundamentals教程。我下载了源文件,一切都在那里工作。它使用版本1.9.1。我正在使用1.10.2。我确实通过改变

的语法来使$ .load()工作
$('#OutputDiv').load('GetCustomers.aspx', {PageSize:10} );

$('#OutputDiv').load('GetCustomers.aspx', "PageSize=10" );

但是这仍然不适用于$ .post()。

$.post('GetCustomers.aspx', "PageSize=15",
    function (data) {$('#OutputDiv').html(data);});

另外,我无法想象如何传递多个数据值。我现在试过

"PageSize=10 var2=1"
"PageSize=10,var2=1"
"PageSize=10;var2=1"
"PageSize=10-var2=1"

如何传递任何数据? 如何传递多个值?

谢谢。