Url.RouteUrl是增加错误的字符
问题描述:
这是我MVC3应用我的路由配置Url.RouteUrl是增加错误的字符
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
// Parameter defaults:
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
正如你可以看到这是一个MVC3应用程序的默认路由,你可以看到,我不改在所有。所以,当我试图用URL助手RouteUrl
这样
@Url.RouteUrl("Default",
new { Action = "RegistrarPago",
IDPago = ViewBag.IDPago,
confirmNumber = ViewBag.ConfirmationNumber },
Request.Url.Scheme)
输出是这
http://localhost/DescuentoDemo/pago/RegistrarPago?IDPago=60&confirmNumber=1798330254
此网址这是错的基本上是这个人物amp;
有什么不对的帮手,我假设这是一个编码问题,但为什么?
答
@
Razor功能默认使用HTML编码。 Url.RouteUrl
帮手没有错。这是你正在使用它的背景下
它,如果你写了一个Razor视图如下:
@("http://localhost/DescuentoDemo/pago/RegistrarPago?IDPago=60&confirmNumber=1798330254")
您在HTML页面中输出它的结果,所以正确的事做的是对HTML进行编码。如果你不想HTML编码然后使用Html.Raw
功能:
@Html.Raw(Url.RouteUrl("Default",
new { Action = "RegistrarPago",
IDPago = ViewBag.IDPago,
confirmNumber = ViewBag.ConfirmationNumber },
Request.Url.Scheme))
如果你想生成例如指向这个网址可以直接使用Html.RouteLink
助手在这种情况下锚。