开发者

How to pass a variable through url and use it inside a controller

I have this controller:

public ActionResult Details(String UserName)
    {
        using (var db = new MatchGamingEntities())
        {
            var Users = from m in db.Users
                        join m2 in db.MyProfiles on m.UserId equals m2.UserId
                        where m.UserName == UserName
                        select new UserViewModel
                        {
                            UserName = m.UserName,
                            LastActivityDate = m.LastActivityDate,
                            Address = m2.Address,
        开发者_如何学Go                    City = m2.City,
                            State = m2.State,
                            Zip = m2.Zip
                        };

            return View(Users.SingleOrDefault());
        }
    }

I type in the url Profiles/Details/hello, but it does not work, if I do Profiles/Details?UserName=hello then it works. I have another ActionResult just like this except taking in an int id as parameter and it works fine with the first url format.


You have to register a new route, something like this:

routes.MapRoute(
   "RouteName",
   "profiles/{action}/{userName}",
   new { controller = "Profiles", action = "Details", userName = UrlParameter.Optional }
);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜