Controller.Url.HttpRouteUrl()使用%amp生成错误的Querystring

时间:2017-06-09 14:54:19

标签: c# asp.net-mvc

我在控制器助手类中有一个方法来填充Model。我需要将URL传递给模型。 我生成这样的URL

var url = Controller.Url.HttpRouteUrl("SomeRoute", new { id = 1, dateFrom = DateTime.Now.AddYears(-1), dateTo = DateTime.Now }); 

然而,我得到的URL是这样的

/SomeRoute?id=1 &amp ;dateFrom=06%2F09%2F2016 18:43:28 &amp ;dateTo=06%2F09%2F2017 18:43:28

SomeRoute()的控制器方法中,我得到参数amp:dateFromamp:dateTo,而不是dateFromdateTo。只生成第一个参数correclty。这是一个错误吗?我怎样才能避免这个丑陋的网址生成?

2 个答案:

答案 0 :(得分:2)

尝试行动:

var url = Url.RouteUrl("SomeRoute",
    new { id = 1, dateFrom = DateTime.Now.AddYears(-1), dateTo = DateTime.Now })
return View(url);

在视图中:

@Html.Raw(Model)

或者您可以直接查看:

@Html.Raw(Url.RouteUrl("SomeRoute",
    new { id = 1, dateFrom = DateTime.Now.AddYears(-1), dateTo = DateTime.Now }))

答案 1 :(得分:0)

是html编码问题,你需要告诉它是html字符串,你可以使用

MvcHtmlString.Create(url);

它应该工作。