hyperN
hyperN

Reputation: 2754

ASP.net MVC one controller two different strongly typed VIews

I want smth. like this. When user types mydomain.com/Message/ he gets all his message threads, but when he types mydomain.com/Message/John he gets message thread between him and john. I Don't know how to implement view for this here is controller :

 public ActionResult Index(String userName)
    {
        var user = UserRepository.GetUserByDisplayName(userName);


        if (user == null || user.UserId.Equals(WebSecurity.CurrentUserId))
        {
            IQueryable<MessageThread> messageThreads =
            MessageThreadRepository.GetMessageThreadsForUser(WebSecurity.CurrentUserId);
            return View(messageThreads);
        }

        MessageThread thread = MessageThreadRepository.GetThreadBetweenUsers(WebSecurity.CurrentUserId, userName);
        return View(thread);
    }

Upvotes: 0

Views: 111

Answers (2)

yusuf
yusuf

Reputation: 1263

I don't know what or how is your methods but I hope it will help you..

Your url like this http://mydomain.com/Message?userName=John

    private DatabaseEntities db = new DatabaseEntities();

    public ActionResult Index(String userName)
    {
        IEnumerable<Message> messages = db.Messages;
        if (!String.IsNullOrWhiteSpace(userName))
        {
            messages = messages.Where(x => x.UserName == userName);
        }
        return View(messages);
    }

But don't forget to use ViewModel..

Upvotes: 0

Eugene K.
Eugene K.

Reputation: 85

check View method's overloads http://msdn.microsoft.com/en-us/library/dd460310(v=vs.98).aspx

Create views for all cases and pass viewName as parameter to View("viewName", yourObject)

Upvotes: 2

Related Questions