使用ActionLink将目录的值从锚标记传递到控制器



我正在尝试使用控制器的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>

最新更新