开发者

Routing-MVC-ASP.NET

In most of the articles, they put this code and explain it but I feel I am not getting it. could any body expalain it in simple terms please.

This question is looks simple but I cannot get it correct in my head.

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.a开发者_开发技巧xd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

        );

My Questions:

Why do we use route.IgnoreRoute and why the parameters in {} ?

Maproute has First parameter-Default, What that resembles, Second Parameter-"{controller}/{action}/{id}", What this for and third parameter, we use new ?

How do I intrepret these routing?

Why all these?

I have used webforms so far and Cannot get it in?

Any Gurus in MVC could explain all these please?


Why do we use route.IgnoreRoute

This tells routing to ignore any requests that match the provided pattern. In this case to ignore any requests to axd resources.

and why the parameters in {} ?

The {} indicates that the delimited string is a variable. In the ignore route this is used so that any .axd requests are matched.

Maproute has First parameter-Default, What that resembles,

The first parameter is the route name. This can be used when referring to routes by name. It can be null which is what I tend to use.

Second Parameter-"{controller}/{action}/{id}", What this for

This is the pattern that is matched. In this case it is setting up the default route which is a url formed by the controller name, action name and an optional id. The url http://mysite.com/Foo/Bar would call the Bar method on the Foo controller. Changing the url to http://mysite.com/Foo/Bar/1 would pass a parameter with the identifier id and value 1.

and third parameter,

The third parameter supplies defaults. In the case of the default route the default controller name is Home and the default action is Index. The outcome of this is that a request to http://mysite.com would call the Index method on the Home controller. The id part of the route is specified as being optional.

we use new ?

The new keyword is creating an object using the object initializer syntax that was introduced in version 3 of the .Net framework. Microsoft article.

The major advantage of using routing is that it creates a convention for your urls. If you created a new controller called Account and action methods called Index and Review then the methods would be availble at /Account and Account/Review respectively.


First of all: ASP.NET MVC is not a simple version of webforms.

MVC has a special structure. You can find a MVC description here: http://en.wikipedia.org/wiki/Model-View-Controller

MapRoute adds the URL structure mapping. For example, following the default route link like www.domain.com/home/users/1 means that the server should call the users action in the controller called home. The action gets a parameter called id with the value of 1.

If you want to add the new Route you can simply add this uin next way:

routes.MapRoute(
    "NewRoad", // Route name
    "/photos/{username}/{action}/{id}", // URL with parameters
    new { controller = "Photos", action = "Index", string username, id = UrlParameter.Optional } // Parameter defaults

);

following this road the url will be: domain.com/photos/someuser/view/123. We can map the optional parameters like id, and static parameters, like username. By default we call photos controller and index action (if the action not set in ult, server will call default action "index", we set it in the route).

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜