asp.net mvc中的路径选择
MVC的路径选择十分灵活,可以用类似/parm1/parm2/parm3/ 的方式(这个有点象iis的urlrewriter),也可以象传统url那样用/?parm1=a&parm2=b&parm3=c这样访问
关键是Global.asax中Route规则的配置
以下是一个Global.asax的示例:
 1 protected void Application_Start(object sender, EventArgs e)
protected void Application_Start(object sender, EventArgs e)
2 {
        {
3 // Note: Change Url= to Url="[controller].mvc/[action]/[id]" to enable
            // Note: Change Url= to Url="[controller].mvc/[action]/[id]" to enable 
4 //       automatic support on IIS6
            //       automatic support on IIS6
5
6 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route
7 {
            {
8 Url = "[controller]/[action]",
                Url = "[controller]/[action]",
9 Defaults = new { action = "Index" },
                Defaults = new { action = "Index" },
10 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)
11 });
            });
12
13
14 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route
15 {
            {
16 Url = "[controller]/[action]/[id]",
                Url = "[controller]/[action]/[id]",
17 Defaults = new { action = "Index", id = (int?)null },
                Defaults = new { action = "Index", id = (int?)null },
18 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)
19 });
            });
20
21
22 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route
23 {
            {
24 Url = "[controller]/[action]/[id]/[name]",
                Url = "[controller]/[action]/[id]/[name]",
25 Defaults = new { action = "Index", name = (string)null,id=(int?)null },
                Defaults = new { action = "Index", name = (string)null,id=(int?)null },
26 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)
27 });
            });
28
29 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route
30 {
            {
31 Url = "[controller]/[action]/[id]/[name]/[sex]",
                Url = "[controller]/[action]/[id]/[name]/[sex]",
32 Defaults = new { action = "Index", name = (string)null, id = (int?)null,sex=(string)null },
                Defaults = new { action = "Index", name = (string)null, id = (int?)null,sex=(string)null },
33 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)
34 });
            });   
35
36
37 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route
38 {
            {
39 Url = "Default.aspx",
                Url = "Default.aspx",
40 Defaults = new { controller = "Home", action = "Index", id = 2, name = "Jimmy",sex="female" },
                Defaults = new { controller = "Home", action = "Index", id = 2, name = "Jimmy",sex="female" },
41 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)
42 });
            });
43 }
        } 
 protected void Application_Start(object sender, EventArgs e)
protected void Application_Start(object sender, EventArgs e)2
 {
        {3
 // Note: Change Url= to Url="[controller].mvc/[action]/[id]" to enable
            // Note: Change Url= to Url="[controller].mvc/[action]/[id]" to enable 4
 //       automatic support on IIS6
            //       automatic support on IIS65

6
 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route7
 {
            {8
 Url = "[controller]/[action]",
                Url = "[controller]/[action]",9
 Defaults = new { action = "Index" },
                Defaults = new { action = "Index" },10
 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)11
 });
            });12

13

14
 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route15
 {
            {16
 Url = "[controller]/[action]/[id]",
                Url = "[controller]/[action]/[id]",17
 Defaults = new { action = "Index", id = (int?)null },
                Defaults = new { action = "Index", id = (int?)null },18
 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)19
 });
            });20

21

22
 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route23
 {
            {24
 Url = "[controller]/[action]/[id]/[name]",
                Url = "[controller]/[action]/[id]/[name]",25
 Defaults = new { action = "Index", name = (string)null,id=(int?)null },
                Defaults = new { action = "Index", name = (string)null,id=(int?)null },26
 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)27
 });
            });28

29
 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route30
 {
            {31
 Url = "[controller]/[action]/[id]/[name]/[sex]",
                Url = "[controller]/[action]/[id]/[name]/[sex]",32
 Defaults = new { action = "Index", name = (string)null, id = (int?)null,sex=(string)null },
                Defaults = new { action = "Index", name = (string)null, id = (int?)null,sex=(string)null },33
 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)34
 });
            });   35

36

37
 RouteTable.Routes.Add(new Route
            RouteTable.Routes.Add(new Route38
 {
            {39
 Url = "Default.aspx",
                Url = "Default.aspx",40
 Defaults = new { controller = "Home", action = "Index", id = 2, name = "Jimmy",sex="female" },
                Defaults = new { controller = "Home", action = "Index", id = 2, name = "Jimmy",sex="female" },41
 RouteHandler = typeof(MvcRouteHandler)
                RouteHandler = typeof(MvcRouteHandler)42
 });
            });43
 }
        } 对应的HomeController文件:
 public class HomeController : Controller
public class HomeController : Controller {
    {       
 /// <summary>
        /// <summary> /// Example URL: /Home/Index/?id=2&name=abc&sex=male (对应Url = "[controller]/[action]")
        /// Example URL: /Home/Index/?id=2&name=abc&sex=male (对应Url = "[controller]/[action]")                      ///              /Home/Index/2/?name=abc&sex=male  (对应Url = "[controller]/[action]/[id]")
        ///              /Home/Index/2/?name=abc&sex=male  (对应Url = "[controller]/[action]/[id]")           ///              /Home/Index/2/abc/?sex=male  (对应Url = "[controller]/[action]/[id]/[name]")
        ///              /Home/Index/2/abc/?sex=male  (对应Url = "[controller]/[action]/[id]/[name]") ///              /Home/Index/2/abc/male/ (对应Url = "[controller]/[action]/[id]/[name]/[sex]")
        ///              /Home/Index/2/abc/male/ (对应Url = "[controller]/[action]/[id]/[name]/[sex]") ///              /Home/Index/2/abc/  (对应Url = "[controller]/[action]/[id]/[name]")
        ///              /Home/Index/2/abc/  (对应Url = "[controller]/[action]/[id]/[name]") ///              /Home/Index/2/ (对应Url = "[controller]/[action]/[id]")
        ///              /Home/Index/2/ (对应Url = "[controller]/[action]/[id]") /// </summary>
        /// </summary> /// <param name="id"></param>
        /// <param name="id"></param> [ControllerAction]
        [ControllerAction] public void Index(int? id,string name,string sex)
        public void Index(int? id,string name,string sex) {
        { ViewData["id"] = id;
            ViewData["id"] = id; ViewData["name"] = name;
            ViewData["name"] = name; ViewData["sex"] = sex;
            ViewData["sex"] = sex; RenderView("Index");
            RenderView("Index"); }
        }       }
    }对应的Index视图:
 <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MVCDemo.Views.Home.Index" %>
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="MVCDemo.Views.Home.Index" %>
 <asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
<asp:Content ID="Content2" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
 <h2>Welcome to my ASP.NET MVC Application!</h2>
    <h2>Welcome to my ASP.NET MVC Application!</h2> 
     id=<%=ViewData["id"] %> <br/>
    id=<%=ViewData["id"] %> <br/> name=<%=ViewData["name"] as string %><br/>
    name=<%=ViewData["name"] as string %><br/> sex=<%=ViewData["sex"] as string %>
    sex=<%=ViewData["sex"] as string %>
 </asp:Content>
</asp:Content>作者:菩提树下的杨过
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://yjmyzz.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
 
                     
                    
                 
                    
                 
        
 
             
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号