asp.net-mvc - 如何将 Mvc 路由空间(如“%20”)更改为“-”
问题描述
我当前的路由是这样的https://localhost:44312/Games/Sea%20of%20Thieves
。
我想更改为https://localhost:44312/Games/Sea-of-Thieves
.
我正在做.Net Core Mvc
项目。有任何想法吗 ?
[Route("Games/{gameName}")]
public IActionResult GameDetail(string gameName)
{
Game requestedGame = _unitOfWork.Games.GetGameByName(gameName);
GameDetailModel gameDetailModel = _unitOfWork.Games.GetGameDetail(requestedGame.Id, User.Identity.Name);
return View(gameDetailModel);
}
解决方案
-
在您的网站上创建链接时,您应该替换空格。
例如,您可以创建一个替换space
为-
. 然后将界面注入您的视图或创建链接的位置。
public interface IUrlHelper
{
string RemoveSpace(string url);
}
public class UrlHelper : IUrlHelper
{
public string RemoveSpace(string url)
{
return url.Replace(" ","-");
}
}
在您的视图中或您创建链接的任何地方,您应该使用此界面
@inject IUrlHelper urlHelper
<a href="@urlHelper.RemoveSpace(YourUrl)">TestUrl</a>
注意:记住IUrlHelper
在服务中注册。
推荐阅读
- c++ - 如何在 OpenGL 中跨图元重用顶点
- css - 标题中的徽标加载然后在移动视图上消失
- facebook - Facebook登录颤动,获取用户ID
- python - 如何在元组列表中加入元组列表?
- javascript - 如何发出 AJAX 请求以获取单词并全局存储变量
- javascript - div 自动滑动淡入/淡出或轻松实现更好的过渡
- java - Android getOrientation() 方位角结果与文档不匹配
- python - 成对读取多个 CSV 文件,它们比较每两对
- python - 尝试与作用域通信时出错,VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed
- html - 如何在图像顶部显示菜单,标题在图像中间?