asp.net动态列表框“获取数据时出错”

时间:2011-06-20 18:06:41

标签: c# asp.net ajax

到目前为止,感谢大家的帮助!到目前为止,在这个网站上有一些非常有用的答案。所以我希望再多一次。

我想创建的是完全这个,但我仍然遇到问题。

http://www.webonweboff.com/widgets/ajax/ajax_linked_selection.aspx

我已经逐字复制了html和javascript,并将该文件保存为index.html(但显然是打开和关闭html和body标签)

我调用ajaxServer.aspx.cs的文件包含以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/javascript";
        string id = Request.QueryString.Get("id");
        string action = Request.QueryString.Get("action");
        StringBuilder returnString = new StringBuilder();

        /* 
            Retrieve the data based on values "id" and "action"
            and build a response string in this format: 
                [{text:"...",
         * 
         * value:"...",selected:false},
                 {text...}]
            No final ";" is necessary

            For example:
        returnString.Append("[{text:\"California\",value:\"CA\",selected:false}," +
                             "{text:\"OH\",value:\"Ohio\",selected:false}," + 
                             "{text:\"NY\",value:\"New York\",selected:true}]");

        */

        Response.Write(returnString.ToString());
    }
}

我调用的ajaxServer.aspx文件包含以下代码:

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="ajaxServer.aspx.cs" Inherits="_Default" %>

我已下载并保存的其他(.js)文件。当我运行.html文件时,我收到以下错误:

获取数据时出错!

URL:ajaxServer.asp

方法:GET

PARAMS:动作状态=,文化= EN-US

readyState的:4

状态:403

headers:Server:ASP.NET Development Server / 10.0.0.0 日期:太阳,2011年6月19日20:39:55 GMT X-AspNet-Version:4.0.30319 缓存控制:私有 内容类型:text / html;字符集= utf-8的 内容长度:2126 连接:关闭

- &GT;有人提出任何线索吗?再一次 - 提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我猜这是他们示例代码中的拼写错误。 ajaxServer.asp引用了一个经典的asp页面,而不是你要求创建的ASPX页面。你实际上是在告诉页面从一个不存在的页面获取GET。

尝试更改Javascript中的以下行:

来自此

var stateCities = new ylib.widget.AjaxLinkedSelection(
                                "state", "city", 
                                "ajaxServer.asp", 
                                "GET", paramsCity);

到此

var stateCities = new ylib.widget.AjaxLinkedSelection(
                                "state", "city", 
                                "ajaxServer.aspx", 
                                "GET", paramsCity);

查看页面的来源,您将看到实际的Javascript引用了aspx页面。 Fiddler中的检查确认正在请求aspx页面而不是asp页面。