ASP.NET MVC5中的复杂路由

纳米

我想知道创建控制器结构的最佳方法。

假设我有几个事件,每个事件我可以有多个设备。

我的想法是有这样的事情:

http://mydomain/event/1/device/4

因此,我可以访问deviceId 4(属于eventId 1)。

我应该有两个不同的控制器吗?一个用于事件和用于设备或设备信息的控件必须位于EventController中吗?

如何在RouteConfig中使用此路由?

克里斯·普拉特

设置方式完全取决于您。您可以使用单独的控制器或相同的控制器。没关系

就路由而言,如果您使用的是标准MVC路由,则需要为此创建一个自定义路由:

routes.MapRoute(
    "EventDevice",
    "event/{eventId}/device/{deviceId}",
    new { controller = "Event", action = "Device" }
);

这将与以下内容相对应:

public class EventController : Controller
{
    public ActionResult Device(int eventId, int deviceId)
    {
        ...
    }
}

只需确保将其放置默认路线之前,即可抢先。有关自定义路由的更多信息,请参见:http : //www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/creating-custom-routes-cs

另外,在MVC5 +中,您可以使用属性路由,如果您正在做很多类似的事情,这将使定义自定义路由变得更加容易。在中RouteConfig.cs,取消注释行:

// routes.MapMvcAttributeRoutes();

然后,在您的操作中定义路线,例如:

[Route("event/{eventId}/device/{deviceId}")]
public ActionResult Device(int eventId, int deviceId)
{
    ...

您还可以[RoutePrefix]在控制器类上使用,以移动部分路线以应用于整个控制器。例如:

[RoutePrefix("event")]
public class EventController : Controller
{
    [Route("{eventId}/device/{deviceId}")]
    public ActionResult Device(int eventId, int deviceId)
    {
        ...
    }
}

有关属性路由的更多信息,请参见:http : //blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ASP.NET MVC5中显示PageList

来自分类Dev

Iframe 未在 Asp .Net MVC5 中显示网站

来自分类Dev

ASP.NET MVC5拒绝映射与物理路径匹配的路由

来自分类Dev

映射自定义路由ASP.NET MVC5

来自分类Dev

ASP.NET MVC5应用程序综合路由被忽略

来自分类Dev

在ASP.NET MVC 5中路由可选参数

来自分类Dev

Asp.net mvc 5 中的路由问题

来自分类Dev

Asp.Net mvc 5-如何在Html.ActionLink()中传递复杂对象作为路由值,以便默认模型绑定程序可以映射它?

来自分类Dev

ASP.NET MVC中的区域路由

来自分类Dev

asp.net MVC中的angularJS路由

来自分类Dev

在ASP.NET MVC5中从网址中删除多余的斜杠,

来自分类Dev

如何从ASP.NET MVC5中的JSON绑定模型中的属性

来自分类Dev

如何在ASP.NET MVC5中创建自定义支架模板?

来自分类Dev

获取ASP.NET MVC5 Identity系统中的所有角色名称

来自分类Dev

c#asp.net mvc5,在c#dll中嵌入js

来自分类Dev

为什么无法在ASP.NET MVC5中重载?

来自分类Dev

如何在OWIN ASP.NET MVC5中注销用户

来自分类Dev

隐藏来自ASP.NET MVC5中某些角色的链接

来自分类Dev

如何在ASP.NET MVC5中允许URL包含点?

来自分类Dev

在ASP.NET MVC5中使用Steam登录

来自分类Dev

调用jQuery以显示ASP.NET MVC5中的div

来自分类Dev

从ASP.Net MVC5中的两个EF模型创建ViewModel

来自分类Dev

在ASP.NET MVC5中的两个日期值之间查询

来自分类Dev

当前上下文ASP.NET MVC5中不存在名称“模型”

来自分类Dev

在ASP.NET MVC5中以编程方式设置用户

来自分类Dev

自定义MVC5 ASP.NET Identity中的cookie值

来自分类Dev

将List <T>映射到ASP.NET MVC5中的模型

来自分类Dev

在详细信息视图asp.net mvc5中,外部值为空

来自分类Dev

从ASP.Net MVC5中的两个EF模型创建ViewModel

Related 相关文章

热门标签

归档