开发者

ASP.Net MVC3 routing reserved words?

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?


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/


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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜