ActionLink路由包含特定字符的值

You*_*dir 5 c# actionlink routevalues razor

我正在使用此动作链接向路由器发送路由值id,但我的id值是这样的config.xml ,这里是我的动作链接

 @Html.ActionLink("Destroy", "DeleteFile", "Files", new { id = "config.xml"})
Run Code Online (Sandbox Code Playgroud)

问题是,当我想点击此链接时,浏览器会将其理解为url最终结果config.xml

像这样

http://localhost:12380/Files/DeleteFile/config.xml
Run Code Online (Sandbox Code Playgroud)

并且不会转到它返回的控制器404 - not found.如何防止这种情况发生,并将其config.xml作为参数而不是文件?

这也是我的路线

routes.MapRoute(
              name: "delete files",
              url: "Files/DeleteFile/{id}",
              defaults: new
              {
                  controller = "Files",
                  action = "DeleteFile",
                  id= UrlParameter.Optional
              }
            );
Run Code Online (Sandbox Code Playgroud)

我也试过id ,filename但没有改变

这是我的控制器

[HttpGet]
        public ActionResult DeleteFile(string id)
        {
          return view("DeleteFile");
         }
Run Code Online (Sandbox Code Playgroud)

You*_*dir 0

在这里我找到了答案,我们可以简单地添加/在末尾config.xml

这是一些答案