【发布时间】:2020-03-06 14:49:13
【问题描述】:
我正在使用 asp-route-id 将 id 值传递给控制器,控制器将返回一个视图,其中包含与 id 相同的“博客”信息。
一切正常,但我不喜欢“网址”的外观!
如何将https://localhost:5001/Blog/Blog/8 之类的“Url”更改为https://localhost:5001/Blog/Blog/title_of_blog?
详情:
-
有一个博客列表blog/list
他们每个人的html代码:
@model Blog <div class="col-12 col-md-6 col-lg-6" style="padding-top: 30px"> <div class="card card-shadow my-4 card_blog"> <img src="~/img/originals/img-09.jpg" class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">@Model.Title</h5> <p class="card-subtitle">@Model.Date.ToString("dd-MM-yyyy")</p> <p class="card-text">@Model.Description</p> <a asp-route-id="@Model.BlogID" asp-controller="Blog" asp-action="Blog" class="a_s_btn myBTN">Read More</a> </div> </div> </div> 我正在点击标签
<a asp-route-id="@Model.BlogID" asp-controller="Blog" asp-action="Blog" class="a_s_btn myBTN">Read More</a>-
这是“博客”控制器中的“博客”操作
public IActionResult Blog(int id) { var blogModel = new BlogsListViewModel(); blogModel.Blogs = repository.Blogs.OrderBy(p => p.BlogID).Where(p => p.BlogID == id); return View(blogModel); } “博客”操作返回给我一个页面,其中包含有关“博客 ID”= 8 的博客的信息 blog page with own information
【问题讨论】:
-
你的模型中的
title_of_blog是什么?asp-route-id会生成像https://localhost:5001/Blog/2或https://localhost:5001/Blog?id=2这样的url,你可以参考here。你是怎么得到这样的urlhttps://localhost:5001/Blog/?id=2?我建议你可以分享更多细节。 -
我在问题中添加了详细信息
标签: url asp.net-core routes maproute