gpt4 book ai didi

.net - .Net 的 RestfulRouting 更改默认 'id' 参数

转载 作者:行者123 更新时间:2023-12-01 04:29:09 25 4
gpt4 key购买 nike

非常基本的问题,但我似乎无法在文档中找到它。我一直在整合 RestfulRouting (通过 nuget)进入 Mvc 4 应用程序,但在某些情况下,最好调整参数,更改名称或在 Controller 操作中有多个参数。

例如

/resource/:id/:slug

public ActionResult Show(int id, string slug) { return View(); }

/resource/:custom_param_name

public ActionResult Show(string custom_param_name) { return View(); }

是否有涵盖此场景的示例或文档?

最佳答案

如果我没理解错的话,你正在尝试 Route by name, not by id.使用 RestfulRouting。

我不确定这是否 100% 可行,但您可以尝试创建自定义路由:

提供了两个额外的方法,以便您可以在需要时将自定义路由添加到路由集中。 Map 是一种可链接的方法,允许您添加标准映射。 Route 是一种允许您将自定义路由添加到路由集中的方法。

例如

Map("posts/{year}/{slug}")
.To<PostsController>(x => x.Post(-1, ""))
.Constrain("slug", @"\w+")
.Constrain("year", @"\d+");
Route(new Route("posts/{action}",
new RouteValueDictionary(new { controller = "posts" }),
new MvcRouteHandler());

Map("resource/{custom_param}")
.To<ResourcesController>(x => x.Resource(-1, ""))
.Constrain("custom_param", @"\w+");
Route(new Route("resource/custom",
new RouteValueDictionary(new { controller = "resource" }),
new MvcRouteHandler());

所以你可以使用:

public ActionResult Custom(string custom_param) { return View(); }

如何使用?

public class Routes : RouteSet
{
public override void Map(Mapper map)
{
map.Root<HomeController>(x => x.Show());
map.Path("test/{id}").To<TestController>(x => x.Test()).Constrain("id", @"\d+");
map.Resource<SessionsController>();
map.Resources<BlogsController>(blogs =>
{
blogs.As("weblogs");
blogs.Only("index", "show");
blogs.Collection(x => {
x.Get("latest");
x.Post("someaction");
);
blogs.Member(x => x.Put("move"));

blogs.Resources<PostsController>(posts =>
{
posts.Except("create", "update", "destroy");
posts.Resources<CommentsController>(c => c.Except("destroy"));
});
});
}
}

public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RestfulRoutingViewEngine());

RouteTable.Routes.MapRoutes<Routes>();
}
}

如何使用:Restful Routing for ASP .NET MVC

完整指南可在此处找到:RestfulRouting

关于.net - .Net 的 RestfulRouting 更改默认 'id' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com