【问题标题】:Using jQuery .load() with aspx使用 jQuery .load() 和 aspx
【发布时间】:2012-06-07 14:58:57
【问题描述】:

所以我对 .NET 框架还很陌生,但我想做的是执行以下 jQuery 代码:

    $(document).on('click', 'a[data-link]', function () {
        var $this = $(this);
        url = $this.data('link');
        $("#imagePreview").load("imageProcess.aspx?"+url);

其中 url 包含类似“model=2k01&type=black&category=variable”的内容。 不幸的是,这不起作用,因为当我在 aspx 文件中执行 Response.Write() 之类的简单操作时,div 标记 imagePreview 没有执行任何操作。但是,删除 ? + url 部分有效,但我无法将任何数据发送到 aspx 文件。我这样做是因为每个链接 a[data-link] 都有不同的数据被发送过来,我需要找到一种动态的方式来实现这一点。任何建议将不胜感激。

更新: 这是我的 html 代码中生成 url 内容的部分:

<a class='modelsBlue' href = '#' data-link='model=" + $(this).find('model').text() + "&type=" + category + "'>" + $(this).find("model").text() + "</a>

并且#image preview 在我的代码中为:

<div id = "imagePreview"></div>

当我尝试运行上面的代码时,我收到以下错误,似乎来自 jQuery.js 文件:

Microsoft JScript runtime error: Syntax error, unrecognized expression: &type=AutoEarly

这里是imageProcess.aspx.cs文件,现在只是输出目录下的所有图片:

namespace ModelMonitoring
{
    public partial class imageProcess : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("test");
            foreach (var f in Directory.GetFiles(Directory.GetCurrentDirectory()))
            {
                Response.Write(f);
                Response.Write("<br />");
            }
        }
    }
}

第二次更新: 我在 chrome 或 firefox 中运行时没有收到错误,但文件没有被输出。

【问题讨论】:

  • 客户端不错。
  • 为我工作。也许发布更多你的代码?
  • 您在哪个版本的浏览器中测试相同?
  • 在使用 html 5 时尝试 ie 9 或 google chrome,而 ie 8 不支持它
  • 我认为问题不在服务器端,尝试调试并查看您实际传递给 jquery 加载函数的内容。然后尝试用你的实际字符串替换你的 load("imageProcess.aspx?"+url) 并检查它是否进入服务器

标签: c# jquery asp.net .net load


【解决方案1】:

原来这是一个空格问题。我不得不添加一个包装器:

$(this).find('model').text()

阅读:

$.trim($(this).find('model').text())

因为我正在读取的 xml 文件在模型名称周围有空格。感谢所有回复的人!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    相关资源
    最近更新 更多