MVC 2 - Saving Child Entities On Form Submit?
Jun 12, 2010
I'm using ASP.NET MVC 2 and am struggling with saving child entities. I have an existing Invoice entity (which I create on a separate form) and then I have a LogHours view that I'd like to use to save InvoiceLog's, which are child entities of Invoice. Here's the view:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TothSolutions.Data.Invoice>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Log Hours
</asp:Content>.......
In the SaveHours action, it properly sets the values of the InvoiceLog entities after I call TryUpdateModel but when it does SaveChanges it doesn't update the database with the new values. Also, if you manually update the values of the InvoiceLog entries in the database and then go to this page it doesn't populate the textboxes so it's clearly not binding correctly.
View 1 Replies
Similar Messages:
Aug 11, 2010
Having the following model Admin and AdminGroup is joined by AdminAdminGroup which has (AdminId, AdminGroupId) fields. When I add a new Admin row AdminGroups are associated with it automatically however this only works on INSERT.When I'm trying to update or associate more AdminGroup's with particualr Admin row (_repo.Update((DataLayer.Admin)row);) only Admin gets updated and no groups are ever modified.What is the correct way of updated "related" entities? so that AdminGroup also get's updated.
View 6 Replies
Sep 22, 2010
i am working on POCO entities. i had a requirement to provide Edit feature for parent and respective Child records in single View.
Eg: Parent-Customer, Child-Order tables
when updating the parent entity by using => UpdateModel(CustomerIns);
and updating the child entity by using => TryUpdateModel(CustomerIns.Order, "Orders");
The Child Controls Names are like Orders[0].OrderID,Oders[0].OrderDate,etc
The Parent and Child Entities are updating when UpdateModel() is called but when saving Changes by calling Context.SaveChanges() i am getting exception like:
"The operation failed: The relationship could not be changed because one or more of the foreign-key properties is non-nullable. When a change is made to a relationship, the related foreign-key property is set to a null value. If the foreign-key does not support null values, a new relationship must be defined, the foreign-key property must be assigned another non-null value, or the unrelated object must be deleted."
View 3 Replies
Feb 27, 2011
I'm trying to create a view that will allow me to create an entity record and also child entities for that record. I have an entity type called "Parent" and I have a child entity called "Child". I want to be able to allow the user to create a Parent including adding several Children and their details, and the npost them all back to the controller from a single view. I found an example on how I would kind of do something like this here: [URL]. The problem with that example is that you can't refer to entities using bracket notation so it only works for those lists. Is there a way to insert hierarchical entity data using MVC from a single view in a single post back?
View 3 Replies
Jan 16, 2010
My classes look something like this (I include only the relevant properties):
public class Order
{
public virtual Customer Customer { get; set; }
public virtual IEnumerable<OrderLine> OrderLines { get; set; }
}
public class OrderLine
{
public virtual string Product { get; set; } // Simplified
}
Now I What I want is to create a detached criteria that selects all orders for a given customer, and at the same time retrieves only the first 10 OrderLines for each order. The first part is easy:
Customer someCustomerObject = ...; var criteria = DetachedCriteria.For<Order> ).Add(Restrictions.Eq("Customer", someCustomerObject);
But how do I instruct NHibernate to retrieve eagerly the first 10 orderlines for each order retrieved by the criteria above?
I've tried using a Filter based on the following example (taken from Nhibernate documentation):
session.CreateFilter( lazyCollection, "").SetFirstResult(0).SetMaxResults(10).List();
But when I give Order.OrderLines to the CreateFilter method, it retrieves all orderlines first, and then afterwards retrieves the 10 first orderlines, which is not what I want. I also tried combining this with a call to NHibernateUtil.Initialize to no avail.
How do I create a detached criteria for this problem? Or, if that is not entirely possible, how to I retrieve, for each order, the 10 first results only, without fetching the entire collection?
View 1 Replies
Apr 21, 2010
I'm pretty new to MVC 2 using the Entity Framework. I have two tables Company {ID int identity PK,Name nvarchar} and User {ID int identity PK,UserName nvarchar,CompanyID int FK}. A Foreign Key exists between User and Company.I generated my ADO.NET Entity Data Model, a Controller and a view to insert a record. My HTML form has the fields Company and UserName and the is when I click save a Company and User is inserted into the database. Sounds straight forward right!
My question is as follows:
I created a strongly-typed view derived from my 'User' entity. I'm using the the html helper Html.TextBoxFor(model => model.Organisation.Name) but the html name attribute for this input field is 'Organisation.Name'. My problem with this is that the dot throws up all sorts of issues in JQuery, which sees this as a property. If I want to change the name I read that I can use DataAnnotations but because I used the Entity Designer this involves using Buddy Classes. Seems like a bit of overkill just to change the html name attribute on this input field.
View 1 Replies
Jun 8, 2010
I have a web form called default.aspx which has a form with user information. In addition to this, I have an iFrame on the same page that displays a page Secondary-Form.aspx that has a few additional dynamic data fields. I need to do two things.
1. I need to pass the parent form data in real time to the iFrame page to refresh its content and modify it's fields accordingly. Example: If the user submits their Vehicle Choice as Car on parent form, the form item in iFrame will display a radio button that says Honda, and if the user submits their Vehicle Choice as MotorCycle in the parent page, the iFrame will display Harley Davidson as the radio button choice
2. The submit button is on the parent page. I want both pieces of this information (from the parent page, as well as iFrame selection) to be passed to a server side ASPX page to process this information.the default.aspx and Secondary-Form.aspx files are located on different domains.
View 2 Replies
Mar 24, 2011
Previously form id in child pages was aspnetform,suddenly now the id has changed to form1, now the problem is there are lots of script used with reference to id aspnetform and they are giving error. So i want to change or override the form1 name to aspnetform to make it work again
View 4 Replies
Oct 3, 2010
i have post detail page (asp.net, umbraco cms), with search box and post replay box.the problem is that when user try to search using the search box, it cause validation error in the post replay box.the search is client side form.the post replay is server side form.you can view it live at:[URL]
View 1 Replies
Feb 28, 2011
I have two asp.net applications webapp1 and webapp2, in each application i have a asp.net form Deafult.aspx
I want to do a form submit from Default.aspx in webapp1 and recieve the value in webapp2.
I tried to do it with simply setting action ="webapp2 location" but it is throwing the bellow error
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.
I even added the machinekey element to web.config
but it is still showing the same error.
This is the code for webapp1 form which sends data to webapp2
[Code]....
View 2 Replies
Jan 6, 2011
I am using ASP.Net MVC2 and LINQ to SQL. I am using DataAnnotations and model binding in conjunction with a Form/View and its working beautifully well. Loving that.. My view is an "Add new Employee" form that's adding a new "Employee" complex object. Every Employee also has a child complex object called an "Address".
I am using the bound Html helpers in the view, such as Html.TextBoxFor(model => model.NewEmployee.FirstName) for example. Working beautifully well, validating beautifully well both client and server and coming into the controller fully populated and ready to be saved! Exciting.. ModelState.IsValid returns true and I go to save the new Employee.
The Employee is created fine but the system also creates a blank/new Address record in my Addresses table even when the Address fields are blank! How can I prevent any Address from being created, in situations where I ONLY want to create a new Employee with no Address. An example is when the user supplies an existing Address, then I wish to simply set the new Employee's AddressID to that of an existing physical address (I hope that makes sense). But it could apply to any situation where you need to create a new complex object, but you don't wish for LINQ to create any of its child complex objects. I have tried setting NewEmployee.Address = null after it is received in the controller, but even after that, a blank/new Address is still created. Even if I try NewEmployee.Address = SomeExistingAddress, it does correctly link the Employee to the existing Address, but it STILL goes off and creates another redundant new/blank address record! Which is really weird..
View 10 Replies
Jan 5, 2011
I have a "Create New Employee" ASP.Net MVC form. My complex object is an Employee and an Employee has an Address, which is another Complex object. On my View/Form I collect all required values for both the Employee and the Address. I'm using the bound HTML helpers such as: Html.TextBoxFor(model => model.EmployeeAddress.StreetName)
AND
Html.TextBoxFor(model => model.NewEmployee.FirstName)
This is all working beautifully well. Model binding is working like a dream, both server side and client side validation using DataAnnotations is working beautifully well and I am nicely receiving my populated complex objects as expected in the Controller.. Now I'm trying to save.. The Employee should always be newly created, because its an "Add New Employee" form. But sometimes the Address is an existing Address and I don't want to insert another one. Rather, I just want to link the Employee to the existing AddressID of the one that already exists in the database.
So I wrote a nifty GetExistingOrCreateNewAddress(Address PostedAddress) method which works great so I end up with the correct Address to use and link to the about to be saved Employee object. This is all happening in the same DataContext, so no problems there..
BUT even when I link the about to be saved Employee object to an existing Address, on save a new/empty Address row is created in my Addresses table. Even though the newly created Employee does link correctly to the existing Address I told it to! Why is it so??? And how can I save the new Employee without LINQ automatically creating a blank Address for me. Because I'm explicitly specifying an existing Address it should be linked to instead!
[HttpPost]
public ActionResult CreateEmployee(EmployeeDetailsViewModel NewEmployeeDetails)
{
if (ModelState.IsValid)
{
EmployeeRepository ER = new EmployeeeRepository();
// Fetch or Create the appropriate Address object for what has been entered
Address ActualAddress = ER.GetExistingOrCreateNewAddress(NewEmployeeDetails.EnteredAddress);
// Link this Address to the "about to be saved" Employee
NewEmployeeDetails.Employee.Address = ActualAddress;
// Lock it in..
ER.SaveNewEmployee(NewEmployeeDetails.Employee);
View 2 Replies
Jan 24, 2010
In my website I have two forms: parent form and child form(dialog box). Their expected behaviour is like this: if clicked on 'show' button on parent form, a dialog form opens that displays a gridview. In dialog form, if clicked on 'select' button it closes
itself and returns value in selected row back to parent form.
To achieve this I write following code (.cs) : in parent form:
void ShowBtn_Click(object sender, EventArgs e)
{
StringBuilder jScript = new StringBuilder(); [code]....
Now problem is: the code in parent .cs works fine, it opens the dialog properly. But when clicked on 'select', instead of returning back to parent, it opens the same dialog again in new window. This newly open window says "Done but error on page" at left bottom.
View 6 Replies
Nov 16, 2010
I have a datamodel with a couple of tables. One of my tables have about 40 fields (I know that is a lot, but we have to keep the structure in place as we are upgrading a classic ASP project to MVC). Some of my Actions only updates 1 or 2 fields in my table.
Is there a way to create Entities, for instance, that only contains the contact details of the client table, and not any other details, and then another entity that contains only the address details. I don't want to submit the entire row when I only update telephone details, or the client's picture.
View 1 Replies
Jan 25, 2010
How can I submit a form if I change a selected value in a select box.
Of course I can pass Javascript to the HTML.DropDownList like this:
[Code]....
Is there a possibility to manipulate the attributes of the form tag?
View 3 Replies
Feb 20, 2012
I'm quite fresh when it comes to VB.NET an i tried to make a form. Submits very nice in IE8, FF and Chrome, but IE9 fails to submit it.
The code i have:
<%@ Page Language="VB" Debug="true" %>
<% @Import Namespace="System.Web.Mail" %>
<% @Import Namespace="System.IO" %>
<script language="vb" runat="server">
Sub Send2Mail (sender as Object, e as EventArgs)
[Code] .....
I replaced some mailadresses to a imaginary one.
View 5 Replies
Apr 28, 2012
I have been making a site and i need a submission form. I need to submit the form but i don't know how to do it. Here is the code for the page so far so you can see what i am trying to submit.
Code:
<%@ Page Language="vb" MasterPageFile="~/Site.Master" AutoEventWireup="false" CodeBehind="MembersOnly.aspx.vb" Inherits="WebApplication4.MembersOnly" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="Content1" runat="server" contentplaceholderid="MainContent">
Products:<br />
[Code] ....
View 1 Replies
Mar 4, 2011
I am trying to code (.net) in the autosave functionality without clogging the network. I am trying to capture data from a webpage into a file on the local drive and automate save every 5 mins. Then finally when the user hits "save" the data should be pulled from the local file to update the data base.
View 1 Replies
Jun 11, 2010
I have a form where the user enters their first name, last name, email address etc.. and then they also have the ability to enter 'cottages' that they are interested in viewing (ie. The cottage name, cottage address). The user then needs to be able to 'save' this somewhere and enter another cottage into the same form.
Finally the user will submit the form, and all the user details, and cottage details will be emailed to admin.
View 2 Replies
Nov 26, 2010
I have a registration form which is divided into
1)User info(All user registration details)
2)Payment Method
3)After complete payment transaction i need to save user details at a time after the complettion of step 2 in sql server DB three table
1)user 2)orders 3)plans
If two or more request came at same time how will distinguish them?
View 2 Replies
Mar 15, 2011
how can i do this........
View 3 Replies
Apr 22, 2010
This post is related to the issue of using javascript with asp.net form found here:[URL]I figured out that the issue I am having is not that the javascript cannot find the control but rather that the ajax frame I am using, for some reason does not allow me to find the controls.Here is how I submit my form in VS 2008 which is working fine:
<form id="form1" runat="server" target="ajaxFrame" defaultfocus="userName">
The ajax frame below, is on the login page right before the body closing tag:
<iframe id="ajaxFrame" name="ajaxFrame" src="" style="visibility:hidden;"></iframe>
When the user clicks the login button, all the vb.net code on the code behind page is executed and some hidden fields are populated with some login/user validation data. The iframe then takes the user name and password (using jquery and some custom javascript) and automatically redirects and login the user on another website where an asp/js login page is used.For some reason, this exact setup does not work with asp.net 4.0.
View 4 Replies
Feb 1, 2011
how to submit two different form in same time?
The form is in one page, and i cannot do it in one form because there are two different reference table used.
View 5 Replies
Feb 1, 2011
I have a form that submits to a database.
What I need to do is when the data submits redirect the user to a page where they can download a personalised certificate in either PDF or word, which has been partly populated by the data entered in the web form.
View 5 Replies
Dec 22, 2010
I have an aspx page with many buttons and i have a search button whose event i want to be triggered when user press enter.How can i do this?
View 4 Replies