【问题标题】:MVC FromUri &amp%3BMVC FromUri &amp%3B
【发布时间】:2014-09-08 00:09:02
【问题描述】:

在控制器上我有以下内容

Index([FromUri] SearchDataModel Search)

这工作正常。但现在我得到一个这样的网址:

https://mysite.com/?SearchName=Test&amp%3Bvalue1=value1&amp%3Bvalue2=value2&amp%3Bvalue3=value3

我需要支持这个 URL 但由于 amp%3B 无法获取参数 我尝试在我的模型中使用HttpUtility.UrlDecode(value);,但它不起作用......

有什么建议吗?

【问题讨论】:

    标签: c# asp.net-mvc url datamodel


    【解决方案1】:

    情况不同,但可能有帮助...这是,如何接受控制器名称中的连字符...

    路由:

    var defaultRoute = routes.MapRoute(
                "Default",
                "{param}",
                new { controller = "Home", action = "Index", param = UrlParameter.Optional }
    );
    
    defaultRoute.RouteHandler = new HyphenRouteHandler();
    

    HyphenRouteHandler:

    public class HyphenRouteHandler : MvcRouteHandler
    {
        protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            //here you can probably do your urlencoding
    
            requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-", "_");
            requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-", "_");
    
            return base.GetHttpHandler(requestContext);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 2017-09-12
      • 2018-06-20
      相关资源
      最近更新 更多