Is it possible that two different views use the same controller? I have very complex controller that displays some data. Now I need to display this data (which is retrieved using ajax) in two partial views because I want to place them on different positions in layout.
                +2 
                A: 
                
                
              the View() function can be passed arguments, for instance:
return View(); // The view with the same name as the action.
return View("MyView") // The view named "MyView"
There are a few more overloads too. Does this fit the bill?
If not, why not partial views, for instance, given this model:
public class BlogItem
{
    public string Title { get; set; }
    public int Id { get; set; }
}
And this action:
public ActionResult Index()
{
    var items = new List<BlogItem>
                {
                    new BlogItem { Title = "Test Blog Item", Id = 1 }
                };
    return View(items);
}
And this view:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<List<BlogItem>>" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
    <% Html.RenderPartial("List", Model); %>
    <% Html.RenderPartial("Icon", Model); %>
</asp:Content>
I can have two partial views using the same model:
List:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<BlogItem>" %>
<ul>
    <% foreach (var item in Model) { %>
        <li><%= item.Title %></li>
    <% } %>
</ul>
Icon:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<BlogItem>" %>
<div>
    <% foreach (var item in Model) { %>
        <div class="icon"><img src="..." /></div>
        <div class="text"><%= item.Title %></div>
    <% } %>
</div>
Would that work?
                  Matthew Abbott
                   2010-06-08 07:42:33
                
              I can't have return two times at once in controller?
                  ile
                   2010-06-08 07:45:34
                @ile: No, but you can use conditional logic in each action method and choose your views accordingly. Or use a generic view and pass it some template to be parsed (though that's a bit more advanced).
                  Simon
                   2010-06-08 07:56:32
                What conditional logic? I need controller to pass data to two views at the SAME TIME. That is not possible?
                  ile
                   2010-06-08 08:06:43
                @ile - You may want make your controller action simpler and split it up so that you can serve two views.
                  Ahmad
                   2010-06-08 18:56:24
                @Ahmad - the problem is that both views depend on identical data. I think I'll have to use jquery to parse reponse data.Thanks anyway
                  ile
                   2010-06-10 06:30:07
                Would partial views not work? I've updated the example
                  Matthew Abbott
                   2010-06-10 08:06:59
                
                
                A: 
                
                
              Based on my understanding so far, you want one controller action to return two views. I somehow think that this is not possible.
You have mentioned that the views are used to display identical data is different ways. My suggestion would to return a JsonResult from the controller action and build the view client side.
                  Ahmad
                   2010-06-10 08:46:01
                
              oops - based on your comment which I have now read correctly, you may be doing this after all.
                  Ahmad
                   2010-06-10 08:47:05