我正在关注Adam Freeman撰写的Pro.ASP.NET.MVC.3.Framework这本书。 所以我下载了代码并在他的菜单类别中生成了这个html代码。
html:
<a class="" href="/Chess%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20">Chess </a>
按下链接时的结果(显而易见):
http://localhost:43190/Chess%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20
我不知道有人对这本书有这个问题。
我尝试使用global.asax:
routes.IgnoreRoute("favicon.ico");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
在我的布局中:
<link rel="shortcut icon" href="@Url.Content( "~/Content/themes/base/images/favicon.ico" )" type="image/x-icon" />
在我的ninject控制器中:
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
if (controllerType != null)
{
return (IController)ninjectKernel.Get(controllerType);
}
else
{
return base.GetControllerInstance(requestContext, controllerType);
}
}
我不知道是否有人和我有同样的问题。我该如何解决这个问题?
答案 0 :(得分:2)
编辑: 真正的答案 好的我明白知道我的sql是nvarchar所以它生成了空格,我改为varchar并且知道不生成blanck空格
我在某处读到添加.trim()它会做到这一点是的,我不明白为什么它这样做(%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20 %20%20%20%20%20%20%20%20%20)
为此更改此“category = link” “category = link.Trim(),”
Menu.chtml
@model IEnumerable<string>
@{
Layout = null;
}
@Html.ActionLink("Home", "List", "Product")
@foreach (var link in Model)
{
@Html.RouteLink(link, new {
controller = "Product",
action = "List",
category = link.Trim(),
page = 1
}, new {@class = link == ViewBag.SelectedCategory ? "selected": null}
)
}
答案 1 :(得分:1)
您应该看到MSSQL数据库。在本书中,作者对nchar
列使用Category
类型,您应该使用类型nvarchar
。 nchar
用空格填充行尾(%20)。或者,您可以在SQL Designer中的字段上设置ANSI-PADDING {off}
。