ViewData不显示通过URL MVC 5传递的信息

时间:2015-10-23 06:56:01

标签: .net asp.net-mvc asp.net-mvc-5 viewdata

我已经安装了Visual Studio 2015 [在我的Win 7上免费]并且刚开始评估它的酷功能。 试图使用这样的视图数据:

public class VandVController : Controller
{
    // GET: VandV
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult DisplayName(string name)
    {
        ViewData["name"] = name;
        return View();
    }
}

我的查看页面如下所示:

@{
ViewBag.Title = "DisplayName";
}

 <h2>Welcome to MVC training Mr. @ViewData["name"]</h2>

从我的网址中,当我这样使用时:

 http://localhost:54748/VandV/DisplayName/abc

它向我展示:欢迎来到MVC培训先生 它应该显示的地方:欢迎来到MVC培训先生abc。

这是我的路线:

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

任何人都可以告诉我哪里出错了?如何显示正确的刺?谢谢。

3 个答案:

答案 0 :(得分:1)

如下修改并正常工作。

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{name}",
        defaults: new { controller = "Home", action = "Index", name = UrlParameter.Optional }
    );
}

答案 1 :(得分:1)

为配置添加另一个路径路径(更改路径路径名称)并更改参数名称示例,如下所示

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

答案 2 :(得分:0)

public static void RegisterRoutes(RouteCollection routes)
{
   routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

使用新的

 {controller="VandV" ,action="DisplayName",id = UrlParameter.Optional}