代码之家  ›  专栏  ›  技术社区  ›  Imad

MVC中的URL编码

  •  0
  • Imad  · 技术社区  · 5 年前

    以前我有如下网址:

    http://xyz.in/Modules/kOPYWOeJHOjPM04ejG%2faRA%3d%3d
    

    http://xyz.in/Modules/id=kOPYWOeJHOjPM04ejG%2faRA%3d%3d
    

    (在参数值之前添加id=before)则工作正常。

    我希望url在不提及id(参数名)的情况下工作。我能做到吗?

    更新:

    routes.MapRoute(
        name: "Modules",
        url: "Modules/{id}",
        defaults: new { controller = "Modules", action = "Modules", id = UrlParameter.Optional }
    );
    

    和控制器代码:

    public class ModulesController : Controller
    {
        public ActionResult Modules(string id)
        {
            var topic = new Topic();
            return View("Modules", topic.GetTopicWithModules(HttpUtility.UrlDecode(id)));
        }
    }
    
    0 回复  |  直到 5 年前
        1
  •  -2
  •   Mahyar Mottaghi Zadeh Karan Parashar    5 年前

    映射配置没有问题。与下面的文章相关,我认为您的最终目标包含“/”字符(%2f),因此它被认为是一个新路由,而您的配置中绝对没有定义它。

    https://stackoverflow.com/a/13210859/7855321 .

    总而言之,如果你试图创建一个url生成器,你必须创建一个黑名单,并防止添加这样有意义的字符。