首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.NET MVC 6 (ASP.NET Core或ASP.NET5)中的友好URL

ASP.NET MVC 6 (ASP.NET Core或ASP.NET5)中的友好URL
EN

Stack Overflow用户
提问于 2016-03-11 15:11:19
回答 2查看 4.6K关注 0票数 4

在我的网站上,我有这样的网址:

代码语言:javascript
运行
复制
https://www.mywebsite.com/View/Index/{MongoDbId}

控制器返回带有产品详细信息的视图。

我的产品类DTO (只是重要的领域)

代码语言:javascript
运行
复制
public class ProductDto
{
   public string Id {get; set;}
   public string Name {get; set;}
}

此时,我有一个名为View的控制器和一个处理请求的Index方法,但是我希望有这样的内容:

代码语言:javascript
运行
复制
https://www.mywebsite.com/v/56b8b8801561e80c245a165c/amazing-product-name

实现这一点的最佳方法是什么?

我在ASP.NET Core (GitHub官方项目)中读过关于路由的文章,但我不太清楚该如何做。

谢谢!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-11 15:35:18

若要在ASP.NET核心中全局配置路由,请在Startup.cs中使用扩展方法:

代码语言:javascript
运行
复制
 app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });

在您的例子中,对于url:https://www.mywebsite.com/v/56b8b8801561e80c245a165c/amazing-product-name,它可能如下所示:

代码语言:javascript
运行
复制
 app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "v/{customId}/{customName}",
                    defaults : new{controller = "View", action = "Index"});
            });

然后,您的操作应该处理customIdcustomName参数如下:

代码语言:javascript
运行
复制
public IActionResult Index(string customId, string customName)
{
   //customId will be 56b8b8801561e80c245a165c
   //customName will be amazing-product-name
}

有关ASP.NET核心中路由的更多信息,请转到:http://docs.asp.net/en/latest/fundamentals/routing.html?highlight=routing

票数 8
EN

Stack Overflow用户

发布于 2016-03-11 15:20:51

您可以使用路由在.NET框架中创建虚荣心URL。属性-路由-asp-net-mvc-5

基本的概述是,您可以这样装饰您的行为:

[Route("Album/Edit/{id:int}")] public ActionResult Edit(int id)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35943643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档