我正在尝试使用控制器的ActionLink从锚标记获取目录/文件夹的值。我已经对值进行了编码,但它总是给我404错误。
{item.Folder}的链接文本/值:\\webserver01\business\application
我得到的值:%5C%5Webserver01%5Business%5Application
原始
@Html.ActionLink(item.Folder, "OpenFolder", new { id = item.Folder }, new { @class = "", @target = "_blank" })
第二种解决方案
@Html.ActionLink(item.Folder, "OpenFolder", new { id = HttpUtility.UrlDecode(item.Folder) }, new { @class = "", @target = "_blank" })
第三种解决方案
@Html.ActionLink(item.Folder, "OpenFolder", new { id = item.Folder.Replace("%5C" "\" }, new { @class = "", @target = "_blank" })
第四种解决方案-将%5C替换为100,然后将控制器中的100替换为\\。
@Html.ActionLink(item.Folder, "OpenFolder", new { id = item.Folder.Replace("%5C" "100" }, new { @class = "", @target = "_blank" })
4个解决方案为我带来了价值:%5C%5Webserver01%5Business%5Application
注:
- 我正在尝试打开一个锚标记中的目录。它在Chrome中不起作用,因为";安全问题">
- 将使用Process.Start((,然后打开文件或目录
如果我理解正确,您正试图将item.folder的内容发送到控制器中的操作?
如果是这样的话,请考虑制作一个带有item.folder文本字段的表单。表单方法可以是Get而不是Post。
转换来自Link text/value of {item.Folder}
:的值
\webserver01businessapplication
收件人:
//webserver01/business/application
换句话说,编辑包含反斜杠的item.Folder
,并将其替换为正斜杠。
这将是基于您的原始解决方案的HTML:
<a class="" href="/ControllerName/OpenFolder/webserver01/business/application"
target="_blank">//webserver01/business/application</a>