Search code examples
c#razoractionlinkroutevalues

ActionLink route values containing specific characters


I am using this action-link to send a route value id to controller but my id value like this config.xml and here is my action-link

 @Html.ActionLink("Destroy", "DeleteFile", "Files", new { id = "config.xml"})

The question is when I want to click this link browser understand this as a url that ends with config.xml

like this

http://localhost:12380/Files/DeleteFile/config.xml

and doesn't go to the controller it returns 404 - not found. How to prevent this from happening and make this config.xml as a parameter not as a file?

here is my route also

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

also i tried instead id ,filename but nothing changed

and here is my controller

[HttpGet]
        public ActionResult DeleteFile(string id)
        {
          return view("DeleteFile");
         }

Solution

  • Here i find the answer we can simply add / at the end of the config.xml

    here is some answers