MVC :: Best Practice To Have Multiple Strongly Type Models Inside A Single View?
Oct 26, 2010
So far I've seen demos of MVC that have simple pages, one for login, one for register, one for listing a table. In order to understand better the transition for WebForms developers into MVC patterns, I would like to understand how can I put together multiple CONTROLS (like the one provided by the default MVC project that VS2010 creates for us ...and make it work. OK so as an example, imagine we want to change the LogonUserControl.ascx to allow us to login (so to show UserName and Password textboxes and Logon button) from the Home Page.
1) We update the Control as follow:
2) We update the HomeController.cs file to handle the Logon Button Post event as follow:
We needed to move some code from AccountController to HomeController in order to get the control to work under the Index view. So ...with little luck it seems to work! Now the problem happens when you navigate to the Register view, considering that now we are not any longer on the HomeController "domain" but we are under AccountController. Register page shows perfectly and since the LogOnUserControl.ascx belongs to the MasterPage, it shows too. Since we are not logged yet, it will be displaying the UserName and Password textboxes. But we don't really care about that, because we are on the Register view and after populating the Register values, we click on the Register button. This is the error I get:
>>> To me that I come from the WebForms world, it seems like even if the event fired was the Register button (therefore under the AccountController domain), there is a kind of hidden OnInit event fired for any control on that view, in this case the Logon event. I'm sure this is NOT the case but the real question is... if we are allowed to have only one Controller x view, how can we put together controls that come from different "controller domains" and display them inside a single view?
Could I develop an eCommerce site using MVC that has the home page displaying different controls like [Most Purchased Product, Product of the Month, Special Promotions, Messages Inbox, Company Events ... and each control has it's own button to click and do something (so a proper POST request)] on the home page, unless I only have ONE single Controller which i'm not even sure if it will work or if it would make sense ....since MVC is all about separation of responsibilities.
View 7 Replies
Similar Messages:
Jan 5, 2010
I'm trying to learn the ropes of ASP.NET MVC and so far so good. One thing which I haven't seen addressed yet is the 'right' or most elegant way to pass multiple data models to a view. To help put the question in context, take this example: Say I was making a blog. When I log in I want the home screen to display a list of all new unapproved comments, as well as a list of recently registered users, and a list of the most recently submitted blog posts.
Most discussions I've seen suggest strongly-typing the view page so it can be called with something like "return View(RecentComments)" and iterate through the comments in the view, or to cast the data model like "var NewUsers = (MembershipUserCollection) ViewData.Model". What I'm ideally after is the 'right', or at least a 'right-enough', way of passing multiple models while still maintaining appropriate logic separation.
View 6 Replies
Dec 27, 2010
i have strongly type view that get a movie object
inside movie i have
movie.CategoryID = 1
the view is strongly type and show the details view
so i have the
Html.textboxFor(m => m.CategoryID)
i want to change it
Html.Dropdownfor(m =>m.CategoryID)
The dropdown box should filled up by an enum or an List<Category> categories; that im getting from database
View 7 Replies
Oct 26, 2010
I am not sure why this happens, but when I have an Html.TextBoxFor(model => model.SomeObject.SomeProperty), when I post, the property of that object is always null.
When I look at the markup generated, I see <input type="text" name="SomeObject_SomeProperty" id="SomeObject.SomeProperty" value = "" />
If I change the helper to Html.TextBoxFor(model => model.SomeObject.SomeProperty, new {id = "SomeProperty"}) the controller is then able to pick the value up. Why is this happening? I feel as though I shouldn't have to be specifiying the id for the textbox as it works when fine when not using child objects on a view model, IE <%: HtmlTextBoxFor(model => model.SomeProperty) %>.
View 8 Replies
Mar 16, 2011
<p>Hi</p> <p>I'm a newbie in MVC but a veteran web forms developer. I really like the idea of strongly typed views but what if I have multiple objects to pass to my razor view. Would I then NOT use strongly typed views and just use the ViewBag?</p>
View 3 Replies
Oct 13, 2010
I have one view page.now what i want to do,i want to bind two models to same view.
I have to bind two different models to single view.
I have bind view with storngly type with Department model First display all the Department, now on click of Department i have to show the Courses associated with that Department.
How can I achieve this.
View 18 Replies
Feb 7, 2011
I am trying to make pluginable architecture of asp.net mvc 3 application. I have some progress. But now i stopped on problem of strongly typed view whose the model compiled in assembly and not located in bin folder. So i load assemblies from places where modules located by MEF. Then i made my own ControllerFactory where i resolve types for controllers. And with controllers and actions everything is working. When i use custom view everything is great. But when I am rying to use strongly typed view I have an error
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request.review the following specific error details and modify your source code appropriately.
Compiler Error Message: CS0246: The type or namespace name 'Admin' could not be found (are you missing a using directive or an assembly reference?)
Source Error:
[code]......
View 2 Replies
Dec 31, 2010
I am integrating asp.net mvc with an existing asp.net web form application. All works well until I try and inherit my view from custom type.
[Code]....
Reference has been added to the assembly containing the above namespace to the web form project. I had manually create an aspx page since the mvc view templates are not available in web forms project. I guess the way view gets bound to the object by telling it where to inherit from or does asp.net mvc performs some hidden plumbing. There weird part was that I could not even bind it to IList<string>.
View 9 Replies
Apr 14, 2010
<%@ Page
Title=""
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<JCIOrange.Models.UserProfile>" %>
How do I display more than one model per view? The above line limits me to only display UserProfiles. I want to also display other models, like UserJob and etc....how would I go about doing so?
View 1 Replies
Jan 25, 2011
I have controller method that looks something like this:
[Code]....
notice the commented out line. This method used to return an IEnumerable<Sport> but now that I have used a LINQ query it is returning an IEnumerable of an anonymous type (I think that's the correct terminology - please correct me if I'm wrong).
Question I have is...can I add a strongly-typed view based on this anonymous type and if not, how do I write a view that can access this collection?
View 3 Replies
Dec 28, 2010
i have a movie object and the movie have comments collection inside it
public class Movie
{
public List<Comment> Comments{ get; set; }
}
so i have a strongly type view like this :
public ActionResult Details(int id)
View 2 Replies
Jul 4, 2010
I am having two models User and Address. In the create User view apart from the user information, the user can add one or more addresses to himself. So is there a way to do model based validation for multiple models in the same time ?
View 9 Replies
Aug 11, 2010
How do you handle multiple models in a view?. I have 2 tables. Member and MemberAddress
Member class contains Collection of MemberAddresses since a single member may have a billing and shipping address:
public class Member
{
public virtual int MemberId { get; set; }
public virtual string Username { get; set; }
public virtual bool IsActive { get; set; }
public virtual bool IsSame { get; set; }
[Code]....
View 3 Replies
Dec 12, 2010
I know that view model can be used for rendering a view, but if a page needs different models, how can I pass them to the view? And how do I use them?
View 2 Replies
Feb 17, 2010
quick question: I have a view on my HomeController which is used to create a new 'model'. This view posts to a different controller to keep things tidy. The problem I am having is when I enter invalid details into the form, the rules I specified never seem to make it back to the original view and thus my validation messages or summary never get populated. Is there a way around this because I am using a view model with two IEnumerable lists in it.
View 5 Replies
Nov 3, 2010
i have a base controller that looks like this:
[Code]....
and a contact model that inherits from the base model.
the master page inherits form the base model,
nad the contact page inherits from the contact nodel,
but then i get an error while loading the contact page that it expects the contact model but gets the base model?
View 9 Replies
Oct 15, 2010
I seem to be having issues with posting forms with DropDownLists. I've looked all over the net and tried various solutions, but none seem to work for me.
I'm getting the following error: The parameter conversion from type 'System.String' to type 'Models.Organization' failed because no type converter can convert between these types.
Here's my ViewModel:
[Code]....
Here's my controller:
[Code]....
The objects are generated by ADO.NET Entity Framework. Organizations is its own object, but also a property of Profile (each user belongs to one organization). Now I understand what the error message is saying, just not sure how else I'm supposed to do this.
View 7 Replies
Sep 29, 2010
I have a web project which includes two button in a view.when i click a button some textboxes along with that second button have to be visible.After entering data in textboxes,when i am trying to click the second button, its not working.What should i do to make it work?
View 1 Replies
Nov 30, 2010
I am having a hard time solving the following with an MVC view. My goal is to display data from multiple tables in a single MVC view. The bulk of the data comes from a table called Retailers. I also have another table called RetailerCategories which stores the retailerid from the Retailers table and also a categoryid linking to a Category table. Note that there are multiple records for each retailerid in the RetailerCategories table.
In the view I want to show a list of retailers and with each retailer I want to show the list of categories applicable to them. What would be the best way to accomplish this?
View 2 Replies
Jun 27, 2010
I have a Strongly typed Dataset TableAdapter in C#, how do I get a single row from it?
View 4 Replies
Nov 30, 2010
When I am creating Strongly Typed View I get lots of Classes in View Data Drop down. Classes like Automapper, ninject, Interface..., latebound... Due this its very hard to find my project classes. Is there any way to restrict dropdown to only display my project classes?
View 1 Replies
Nov 10, 2010
I have a products table whereby I want to return a single row via a product id and use it as a data object.
I have used a .xsd dataset and a product class where I return a dataset and add the values into the product object that I created but I don't like having to write code like
"Product[0].ProductDescription" to get the product description. Is there a way of returning is straight as an object rather than a dataset?
View 2 Replies
Feb 13, 2011
[Code]....
I have put breakpoints and checked all the values are coming in object ma but its not updating......
View 5 Replies
Feb 4, 2011
I am implementing a view for Food. (ASP.NET MVC2) Then depending on the type (say fruit or vegetable for example) I will change the view.
Can I do this without creating a seperate view for fruit and vegetable?
I.e. Say we have url structure like [URL] and don't want [URL] [URL]
So I want to be able to change the view depending on the type. I'm using a tabstrip control from telerik, to give you an of the difference in the views - it'd just be say - not displaying one particular tab for Veg, and displaying it if fruit, for example.
Can a view accept two different view models ? so when we hit [URL] the code determines what type the object is (Fruit or Vegetable) then sends either FruitViewModel or VegetableViewModel ? If I just send one viewmodel how can I control the logic to display or not display certain things in the view?
View 3 Replies
Jun 27, 2010
how can i get a single row from strongly typed dataset table data adapter in c#?
View 2 Replies