首页 > 解决方案 > 如何将 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);
}

标签: asp.net-mvcasp.net-coreurl-routingasp.net-mvc-routing

解决方案


-在您的网站上创建链接时,您应该替换空格。

例如,您可以创建一个替换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在服务中注册。


推荐阅读