Display And Update Data In MVC2?
Mar 7, 2010
Table Product
Product Id
Product Name
Table ProductSupplier
ProductSupplierId
ProductId
SupplierId
Table Supplier
SupplierId
SupplierName
I have the above 3 tables in my database, ProductSupplier is the lookup table. Each Product can have many suppliers. I am using Entity Framework. Using Web Forms it was fairly easy to display a Product on a web page and bind a repeater with the suppliers information. Also, with Web Forms it was easy to Add new Product and suppliers, the linkage seemed easy.
How do you do this sort of functionality in MVC? In the Create View below, I want to be able to Add the Supplier as well. Is there a better approach that I might be missing here? This is how I did it with Web Forms. Beyond the code below I am totally lost. I can show data in a list and also display the Suppliers for each Product, but how do I Add and Edit. Should I break it into different views? With Web Forms I could do it all in one page.
namespace MyProject.Mvc.Models
{
[MetadataType(typeof(ProductMetaData))]
public partial class Product
{
public Product()
{
// Initialize Product
this.CreateDate = System.DateTime.Now;
}
}
public class ProductMetaData
{
[Required(ErrorMessage = "Product name is required")]
[StringLength(50, ErrorMessage = "Product name must be under 50 characters")]
public object ProductName { get; set; }
[Required(ErrorMessage = "Description is required")]
public object Description { get; set; }
}
public class ProductFormViewModel
{
public Product Product { get; private set; }
public IEnumerable<ProductSupplier> ProductSupplier { get; private set; }
public ProductFormViewModel()
{
Product = new Product();
}
public ProductFormViewModel(Product product)
{
Product = product;
ProductSupplier = product.ProductSupplier;
}
}
}
ProductRepository
public Product GetProduct(int id)
{
var p = db.Product.FirstOrDefault(por => por.ProductId == id);
p.ProductSupplier.Attach(p.ProductSupplier.CreateSourceQuery().Include("Product").ToList());
return p;
}
Product Create View
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MyProject.Mvc.Models.ProductFormViewModel>" %>
<%= Html.ValidationSummary("Please correct the errors and try again.") %>
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.Product.ProductId) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Product.ProductId) %>
<%= Html.ValidationMessageFor(model => model.Product.ProductId) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Product.ProductName) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Product.ProductName) %>
<%= Html.ValidationMessageFor(model => model.Product.ProductName) %>
</div>
<div class="editor-label">
<%= Html.LabelFor(model => model.Product.Description) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Product.Description) %>
<%= Html.ValidationMessageFor(model => model.Product.Description) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
View 1 Replies
Similar Messages:
Mar 2, 2010
[HttpPost]
public ActionResult Edit(int id, FormCollection fc)
{
Movie movie =
(
from m in _ctx.Movie.Include("MovieActors")
where m.MovieID == id select m
).First();
MovieActorViewModel movieActor = new MovieActorViewModel(movie);
if (TryUpdateModel(movieActor))
{
_ctx.ApplyPropertyChanges(movieActor.Movie.EntityKey.EntitySetName,
movieActor.Movie);
_ctx.SaveChanges();
}
return View(movieActor);
}
However, I am not sure how to test this, and in general would much rather have the method take a typed model like:[HttpPost] public ActionResult Edit(MovieActorViewModel movieActor) Is this possible? What changes to my MovieActorViewModel class do I need to make in order to enable this? That class looks like this:
public class MovieActorViewModel
{
public Movie Movie { get; set; }
public Actor Actor { get; set; }
public PublisherDealViewModel(Movie movie)
{
this.Movie = movie;
this.Actor =
(
from a in this.Movie.Actors
where a.ActorID == 1 select a
).First();
}
}
The view is typed (inherits ViewPage) simple:
<% using (Html.BeginForm()) {%>
Movie Title: <%= Html.TextBoxFor(model=>model.Movie.Title) %><br/>
Actor Name: <%= Html.TextBoxFor(model=>model.Actor.Name) %>
<% } %>
View 3 Replies
Feb 8, 2011
I tried upgrading the solution to MVC3 in VS2010 by using an upgrader tool I don't know what it does exactly but it didn't work. My "System.Web.Mvc" is not being recognized in my project. Is there anything specific I should be doing with my web.config? I don't quite understand the underlying details about all the places I should be referencing dll's or what "binding" even means and when I should use it inside the web.config So I have to ask, what is the best method for upgrading to MVC3 and what have you done that works?
View 1 Replies
Sep 20, 2010
I want to have two partial views, one for SEARCH and one for SEARCHRESULTS. I want to update SEARCHRESULTS when the "Search" Button is clicked on the SEARCH partial view form. SEARCHRESULTS needs to have the form data fed to it from the SEARCH partial view. I'm not totally sure how to go about this. Can I update the SEARCHRESULTS partial view from my SEARCH partial view's Controller action?
View 1 Replies
Mar 29, 2011
i need to display an image only after a button click in asp.net mvc2 but i am getting it even before click as well as after click.
View 1 Replies
Apr 2, 2010
I have a table in my database with a one to many relationship to another table, which has a relationship to a third table:
[Code].....
This seems to work fine. My question to you good folks: Is there a correct way to do this? I tried following the making a custom model binder per the blog link I posted above but it didn't work (there was an issue with reflection, the code expected certain properties to exist) and I needed to get something going ASAP. PS - I tried to cleanup the code to hide specific information, so beware I may have hosed something up.
View 1 Replies
Dec 10, 2010
i want to know how to call stored procedure in entity framework. how to do code with controller class and with model.
i mean if i want to call insert,update,select,delete stored procedure for entity framework then what are stps i have to follow.
View 2 Replies
Mar 29, 2010
When a user updates a record via detailsview in table 1 (TA), I need to display child records which are in table 2 (SG) and their child records which are in table 3 (SC). I tried to use DataList inside another DataList but I cannot filter the table 3 records based on returned values of table 2. I am also using TableAdapters and added a relation for table 3 to table 2 via both primary keys of table 2. I selected to create Both Relation and Foreign Key Constraint and Cascade as Accep/Reject Rule.
For my select statement on table 2, I filter it via WHERE (SGPrimaryKeyCd = :SGPrimaryKeyCd) AND (SGPrimaryKeyDate = :SGPrimaryKeyDate) and return the correct records based on values entered by the user.
For my select statement on table 3, I tried using a WHERE clause but didn't work. Without a Where clause I get all the records, of course. I thought relation would take care of filtering.
[Code].....
View 2 Replies
Feb 23, 2013
i have three saved values in database
1,2,3
i want to showing status in label for 1 , Pending
<asp:Label ID="lblLeaveStatus" Visible = "true" runat="server" Text='<%# Eval("Rec_Status").ToString() == "1" ? "Pending": Eval("Rec_Status") %>'>></asp:Label>
how can i show it with all 1,2,3?
View 1 Replies
Jul 16, 2013
I want to display a pop up window when i click on update button of gridview after editing. How this will be implemented.
View 1 Replies
Mar 5, 2010
I'm beginner in ASP.NET MVC. So i have simple question. I'm create sample MVC 2 web project in 2010 RC. Add SQL Database with one table of products. I'm using Enity Framework as data access method. Table contain colums Id, Brand, Description, Price. I have one controller with Select and Show Actions tyhat whould shows apropriative views. And Question: I want to select brands (multiple checkboxes) of product manufacturer on Select page and show list of products on Show page. But i can't understand how to pass data (wich checkboxes is selected) from one page to another
View 10 Replies
Apr 8, 2010
I am trying to make some sense of this validation stuff in MVC2. I followed various walkthroughs, all them for betas/rcs... and I cant' get anythign to happen. Note: THIS JQUERY - NOT THE MS AJAX STUFF!I have referenced MicrosoftMvcJQueryValidation.js which i got got the mvc2 futures lib.
My model is:
[Code]....
The form bit of my ViewPage<User>:
[Code]....
As far as I can see the only additional thing that is being rendered is this:
[Code]....
Which is interesting/annoying for a few reasons. Firstly all of my annotations appear to have been ignored.Secondly FormId isn't even marked as required, and as this rendered text was taken from a page loaded with a null Model (add mode) the FormId field isn't in the form. Finally, this doesn't even result in any actual validation occuring (on the client side). All the server side validation is working fine.See I am using PasswordFor instead of EditorFor. Because someone at MS testing dropped the ball there. Yes EditorFor renders a password field, but it behaves differently to PasswordFor.. the value of the Password field is sent to the client (set in the value
attribute of the field). Fail.
View 8 Replies
Dec 15, 2010
I have a HTML table (grid). I want to pass the html table data to controller.(mvc 2.0)
View 2 Replies
Apr 26, 2010
My test shows it doesn't work. It ignores the nested data in model.
View 1 Replies
Dec 30, 2010
I am quite new to ASP.NET. I am trying to display database data using text boxes and then using the same boxes to amend those data if the user wants and then sending them back to database.
I can display all the required fields from database onto aspx page. I have all the text boxes enabled. But when I edit the boxes and click submit, it stores the data that came from the database while I was displaying them meaning that any data updated on the text boxes are not captured at all.
My codes looks like the following:
ASPX Code:
<asp:TextBox ID="txtFirstName" runat="server"
View 7 Replies
Apr 19, 2010
I have a page with 5 buttons on top. I want the area below the buttons to contain an update panel that will display button 1's panel if they click button 1. If they click on Button 2, then I want button 2's update panel to replace the button 1 update panel. Each panel has stuff on it like check boxes and text boxes.
Is there a way to do this? Is there a more efficient way to do this?
View 2 Replies
May 14, 2010
I am having a grid view with radio buttons. If i select radio button inside the grid view and if select the button edit out side the grid view i am transferring it to another page On that page i am displaying the information regarding the selected grid. Now if i edit the values and click on update i am going redirect the page to grid page there i would like to show a message as update success.
View 1 Replies
Feb 24, 2011
I want to display count from 1 to 10 using a loop and update panel.Count change should be visible in browser.Just like currently processsing item is 1..then 2 and so On.
View 10 Replies
Nov 9, 2010
how to deal with update buttons once you click on update..I do have some buttons like update, hold, release etc...Once I click on these the database will be updated and the immeadiate changes are not reflect until unless i hit the refresh...I know..I need to rebind everthing or need to make a fresh page_load()...But I am calling around 10 Stored procs on each postback...Is there any way to avoid these many calls to database...I am using the updatepanels..so user not aware of postback...he doesn't get any response from UI about the changes...
View 4 Replies
Aug 9, 2010
I am trying to display an model popup to update records. data is stored in msaccess database.
Here i need to show popup filled with exixting data when i click on edit button inside edit column of grid.
once user modifies data and clicks on save button within popup data should be stored.
View 3 Replies
Apr 13, 2010
I am now using iframe on default.aspx.
I want to display update progress whenever page inside of iframe is refreshing or updating.
View 3 Replies
Jan 19, 2010
I have a GridView that is populated from a LinqDataSource. When I update a row, the RowCommand fires and the change is persisted to the database, but the Grid does not refresh. I have it in an UpdatePanel and explicitely call Update() in the RowCommand handler, but there is no postback and the page just sits there in Edit mode. Once I click cancel, it will return to view-only and the grid shows the new value.
something in the wiring of the GridView regarding the data source is wrong. No exception bubbles up, though. A stripped-down copy of the markup is below.
[code]....
View 3 Replies
Sep 29, 2010
getting data from multiple Entities models into an MVC controller. Most of the examples I have seen for using EF in an MVC2 app only use a single entitiy.
I have just started using MVC2 in C# using the Entity Framework models (CIOps.model) created from an SQL database. I can create the controller and views using single tables of the model in MVC2, but I just cannot get my head around how to get data from multiple entity tables into the controller (similar to joins in T-SQL). I have included an example below of the controller code that works with a single entity table, tbl_tours (tbl_tour in DB).
Could someone please illustrate how this code would be changed to include additional columns from FK tables in addition to tbl_tours columns. E.g. the clients name from the tbl_clients, the coordinators name from the tbl_employees, and costs from tbl_costs entities? Is it possible to do this directly using the EF model entities/classes that are already created and not use LINQ, POCO, Repositories, etc.? The FK relationships are already in the EF models. I have included the whole controller code, but I just need a few examples of how to join the multiple entities, not rewrite every CRUD function function in the controller. I think this will get me over the hump in using EF in an MVC2 App. Also ignore the fact I am using the home controller, this will change in the application.
[Code]....
View 21 Replies
Aug 12, 2010
I'm using an entity model with metadata annotations. My controller method looks like this...
if (!ModelState.IsValid)
{
return View(model);
}
else
{
UpdateModel(model);
repo.Save();
return RedirectToAction("Index");
}
If I enable client side validation in the view I'll get the error per the Attributes from the metadata class. If I take clientside validation out, error gets thrown from saving to the DB rather than return the view with an Error Summary.
This is the top portion of my view....
<% using (Html.BeginForm())
{%>
<%: Html.ValidationSummary(true) %>
I've tried running without debugging (ctrl + f5) in debug and release mode as well as setting breakpoints and Debugging (f5) but it just seems weird to get Client side validation without server side validation. What am I missing here?
View 1 Replies
Aug 26, 2010
one thing that has been puzzling me since learning MVC2 is the following case scenario: I have a view which contains two latest news lists, a login form and a signup form. Every example I found on Views and View Models so far has a one-to-one example such as a simple login form etc. But how do I create a model that provides the properties and validation for a login and signup form and manages the data for the news lists. can I pass multiple models in the strongly typed view? When I created one model the form validation would fail as it expects all fields - login and signup to be filled. I am missing some advanced examples or information.
View 2 Replies