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 回答