我正在使用C#ASP MVC3,并且使用通过城堡windsor传递的参数生成菜单。MVC HTML动作链接在URL中插入大量%20
当我开发和本地测试,从这个代码生成的URL被罚款:
@foreach(var menuItem in Model.MenuItems)
{
var dic = new RouteValueDictionary();
foreach (var item in menuItem.QueryValues)
{
dic.Add(item.Key, item.Value);
}
<li>@Html.ActionLink(menuItem.Name, menuItem.ControllerAction, dic)</li>
}
但是,当它被推到了测试服务器,该URL决定增加:
%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20
在每个正在通过URL传递的参数之间。
不完全确定要显示哪些区域来帮助解决问题。它可能是xdt:Transform:Replace在web.config中使用或完全不同。任何帮助,你可以提供将不胜感激。
谢谢。
更新:我发现是什么导致正在生成的链接中的所有这些空间。 XML替换在进行替换时在XML文件中添加了返回值和空格。我现在要解决这个问题,因为它不是很理想,所以这个问题已经改变了,我们该如何阻止xdt:替换为添加这些不需要的空格并返回?
'%20'是空格的HTML编码。你确定你使用的参数没有空格吗? – 2012-08-06 14:29:52
除了@AndreCalil评论之外,'%0D%0A'对Windows换行符进行了编码。 – Oded 2012-08-06 14:32:21
@Oded这是一个很好的观点,我忽略了这一部分。大卫,你是否在本地和测试服务器上使用相同的数据源? – 2012-08-06 14:33:49