ASP.Net MVC3 routing reserved words?
Asked Answered
L

2

9

I have an ASP.Net MVC application with the standard routes defined. The app edits meta data for our database. The url scheme is:

http://localhost/tables/Edit/[Name of Table Here]

This calls the edit function on the tables controller and passes in the name of the table as the parameter id. All of the tables work fine except one named con. The following URL results in a 404:

http://localhost/tables/Edit/con

The only thing I can think of is that con must be some sort of reserved word with respect to MVC routing. Does anyone know whether this is the case and if there are other reserved words to avoid?

Limitation answered 31/5, 2011 at 23:16 Comment(0)
T
13

Yes, con is a reserved word and thus cannot be put in a MVC route. Here is a blog post describing a work-around:

http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

And another post detailing the reasons behind the reserved words:

http://bitquabit.com/post/zombie-operating-systems-and-aspnet-mvc/

Tumulus answered 31/5, 2011 at 23:22 Comment(0)
R
4

CON is a reserved word like COM1, COM2, COM3, COM4, LPT1, LPT2, AUX, PRN, NUL.

I also run into this problem while using ajax request. I solved by putting "-" char at the beginning of parameter, and then I replaced it in code-behind.

But it was a silly solution, you can solve this problem easily by simply adding

    <system.web>
        <httpRuntime relaxedUrlToFileSystemMapping="true"/>
         ......
    </system.web>

to your Web.config file and you can safely use these words in urls.

Recuperate answered 24/1, 2014 at 15:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.