自定义路线& MVC 2中的区域

时间:2010-06-22 20:12:11

标签: asp.net-mvc model-view-controller asp.net-mvc-2

我想映射这样的区域:

/artists/{artistName}/images
/artists/{artistName}/images/{imageId}
/artists/{artistName}/blogs
/artists/{artistName}/blogs/{blogId}
/artists/{artistName}/albums
/artists/{artistName}/albums/{albumId}

在mvc2中,我如何配置我的区域路径以及我的区域视图的文件结构是什么样的?

感谢。

1 个答案:

答案 0 :(得分:1)

我可能会在你的地区注册中做这样的事情:

Public Overrides ReadOnly Property AreaName() As String
            Get
                Return "Artists"
            End Get
        End Property

Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
     context.MapRoute( _
          "Artists_default", _
          "Artists/{artistName}/{controller}/{id}/{action}", _
                New With {.id = UrlParameter.Optional, .action = "Index"} _
            )
End Sub

将图片/博客/相册视为您的控制器。将操作放在字符串的末尾,以便在每个示例只有一个操作时它将保持不可见。

编辑:你的问题还有第二部分:)

通过这条路线,您将拥有一个像这样的文件夹结构

Areas
  Artists
     Controllers
          ImagesController
          BlogController
          AlbumsController
     Views
          Images
               Index
          Blog
               Index
          Albums
               Index

您的视图文件夹名称对应于控制器名称,视图名称本身通常与操作对应。