如何在asp.net中使用jquery给url正确的锚标记
本文关键字:url jquery asp net | 更新日期: 2023-09-27 18:06:31
我已经在。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>";
请帮帮我!!
需要整理的几个问题:
1)"~/"
"~/"作为相对路径在。net 中用于服务器端。Javascript(实际上是您的浏览器)不知道如何处理该URL。
作为一个小技巧,你可以使用这个Razor代码@(Url.Content("~/"))
注入应用程序根URL,但这意味着你的函数需要在Razor页面中,而不是单独的JS文件中。
如果你的JS是"别处",注入路径作为一个Javascript变量(例如window.rootUrl = "@(Url.Content("~/"))"
)在页面上使用一个小的脚本部分。
2)缺失'>'
您在生成的锚中缺少关闭>
。
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);
为所有的拼写错误道歉,我只是随口打出来的,并没有核实。