繁体   English   中英

如何在 html 链接元素中为在 Z5DA5ACF461B65EFB7E7Z6EC211 上运行的 web 应用程序创建相对 Url?

[英]How can I create a relative Url in a html link element for a web app running on IIS?

假设我有一个 web 应用程序:

www.mymvcsite.com/MyVirtualDirectory/Controller/Action

在我看来,我有一个<a href="/FolderA/myfile.pdf"> 问题是整个 Html 来自数据库。 啊哈。 您认为这就像@Url.Content() 一样简单......好吧,这不起作用,因为 html 是动态的,事实上我不知道标记中甚至还有链接元素我盲目地将它输出到看法。

那么我需要在href中添加什么才能正确解析Url。

IE。 “myfile.pdf”位于...
www.mymvcsite.com/MyVirtualDirectory/FolderA/myfile.pdf

但由于某种原因在浏览器中 url 最终成为
“www.mymvcsite.com/FolderA/myfile.pdf”

请注意,缺少“MyVirtualDirectory”。 我什至尝试在 Url 中添加“~”,但这也不起作用。

谢谢!

您需要将相对 url 存储在隐藏字段中:

<input id='hidPartialUrl' type='hidden' value='<%:ResolveUrl("~/") %>'/>

所有链接都应相对于站点的根目录,并具有共同的 class 名称:

<a href='/FolderA/myfile.pdf' class='fixThisLink'>PDF</a> 

然后,当您将其加载到页面中时:

var hiddenHref = document.getElementById('hidPartialUrl').href;
var links = document.getElementsByClassName('fixThisLink'); 
for(var i = 0; i < links.length; i++) {
    links[i].href = hiddenHref + links[i].href;
}

设置每个返回的 href 属性以包含 url 的第一部分。 我会将 url 的第一部分存储在隐藏字段中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM