【问题标题】:How to give url properly to anchor tag in asp.net using jquery?如何使用 jquery 正确地将 url 提供给 asp.net 中的锚标记?
【发布时间】:2014-06-04 11:09:33
【问题描述】:

我在 .net 应用程序中将 jquery 编写为

Function UploadComplete(sender, args) {
        var filename = args.get_fileName();
        var contentType = args.get_contentType();
        var folder = "~/Uploads/";
        var text = "Size of " + filename + " is " + args.get_length() + " bytes";
        if (contentType.length > 0) {
            text += "and content type is '" + contentType + "'.";
            text += "<a href='" + folder + filename + "'" + filename + "</a>";
        }
        document.getElementById('lblStatus').innerText = text;
    }

现在我的问题是我无法准确地给出路径

 text += "<a href='" + folder + filename + "'" + filename + "</a>";

请帮帮我!!!

【问题讨论】:

  • &lt;a&gt; 标签格式不正确。应该是"&lt;a href='" + folder + filename + "'" + filename + "&gt;&lt;/a&gt;";。你忘了加&gt;
  • missing end > 创建锚点
  • 您需要在文件夹和文件名之间添加/ 吗?
  • @ppittle:不,folder = "~/Uploads/"(已经有尾随/
  • 如何使用document.createElement("A")document.createTextNode 生成所需的标记?

标签: c# jquery asp.net .net


【解决方案1】:

需要解决的几个问题:

1) "~/"

“~/”作为相对路径是为了在.Net中使用服务器端。 Javascript(实际上是您的浏览器)不知道如何处理该 URL。

作为一个小技巧,您可以使用此 Razor 代码 @(Url.Content("~/")) 注入 应用程序根 URL,但这意味着您的函数需要位于 razor 页面而不是单独的 JS 文件中。

如果您的 JS 在“其他地方”,请使用页面上的小脚本部分将路径作为 Javascript 变量(例如 window.rootUrl = "@(Url.Content("~/"))")注入。

2) 缺少'>'

您在生成的锚点中缺少结束 &gt;

3) innerHTML,而不是 innerText

您需要设置 innerHTML 属性,否则您将获得原始文本。您可能需要调整输出的格式(换行符或跨度/段落)以使其看起来更漂亮(例如,此时锚点之前没有空间)。

把它们放在一起,你会得到类似的东西:

function UploadComplete(sender, args) {
    var filename = args.get_fileName();
    var contentType = args.get_contentType();
    var folder = '@(Url.Content("~/"))Uploads/';
    var text = 'Size of ' + filename + ' is ' + args.get_length() + ' bytes';
    if (contentType.length > 0) {
        text += 'and content type is "' + contentType + '". ';
        text += '<a href="' + folder + filename + '">' + filename + '</a>';
    }
    document.getElementById('lblStatus').innerHTML = text;
}

正如我在评论中所说,我强烈建议在 jQuery/JavaScript 中使用单引号作为字符串分隔符,以便任何 HTML 字符串在属性上都有双引号。

4) jQuery?

您也用 jQuery 标记了问题,这会将最后一行缩短为:

    $('#lblStatus').html(text);

对于任何错别字,我深表歉意,我在脑海中输入了所有这些内容,并没有进行验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2019-01-05
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    相关资源
    最近更新 更多