3

我正在关注 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);
            }

        }

不知道有没有人和我一样的问题。我该如何解决这个问题?

4

2 回答 2

2

编辑:真正的答案好的我知道我的 sql 是 nvarchar 所以它生成了空格,我改为 varchar 并且知道不生成空格

我在某处读到添加 .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}
    )
    }
于 2012-08-26T18:09:57.873 回答
1

您应该查看您的 MSSQL 数据库。在作者的书中使用nchartype 作为 column Category,你应该使用 typenvarchar来代替。用nchar空格 (%20) 填充行尾。或者您可以ANSI-PADDING {off}在 SQL Designer 中的字段上进行设置。

于 2013-01-21T12:16:23.673 回答