0

Pluralsight ビデオに従って MVC4 を学習しています。

アクション パラメーターの既定値について学習しながら、RouteConfig.cs 内で次の設定を定義しました。

        routes.MapRoute(
            name: "cuisine",
            url: "cuisine/{name}",
            defaults: new { controller="cuisine", action="search", name=""});

以下のように、アクションメソッドとして Search() を使用して CuisineController を作成しました。

    public ActionResult Search(string name="India")
    {
        var message = Server.HtmlEncode(name);
        return Content(message);
    }

私が見たビデオによると、URL に何も渡されていない場合は、インドが出力として表示されます。しかし、私は空の文字列を取得しています。私はどこで間違っていますか?

4

1 に答える 1

0

UrlParameter.Optional を使用する必要があります

routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{name}", // URL with parameters
                new { controller = "Home", action = "Search", name = UrlParameter.Optional } // Parameter defaults
            );

public ActionResult Search(string name = "India")
        {
            var message = Server.HtmlEncode(name);
            return Content(message);
        }

これにより、「インド」がページに完全に表示されました。

于 2013-04-10T10:51:34.200 に答える