3

私は、アダム・フリーマンのこの本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.Trim()」の「category=link」を変更します。

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データベースを確認する必要があります。著者がnchar列にタイプを使用している本では、代わりCategoryにタイプを使用する必要があります。nvarchar行のnchar終わりをスペース(%20)で埋めます。ANSI-PADDING {off}または、SQLDesignerのフィールドで設定することもできます。

于 2013-01-21T12:16:23.673 に答える