MVC :: Trying To Bind The Dynamic Object Using TryUpdateModel();
Dec 10, 2010
I am trying to bind the dynamic object using TryUpdateModel(); but it works for first class member but it is not updating the properties of object which are referenced to model.
I got this error "object reference not set to an instance of an object" when i want to display the values of dynamic generated drop down lists by pressing a button to show the values in Listitem.
I have a view that displays a list of entities; I need to provide user a way to bulk-edit some properties of these entities. To do that I generate a form like the following:[Code]....
Next, I use javascript to submit user-entered values:[Code]....
Submitted data is processed by the following action:
[Code]....
Quantity and Price properties of the entities in the collection are updated as desired. However, all other properties are reset to null. AFAI, specifying the properties in "excludeProperties" list should prevent them from being changed by TryUpdateModel, right? What am I missing here?
I have following problem: in the Controller I call TryUpdateModel to send the changes made in the form back to the database. Then I save the entity, but no changes to database are made.
Here is the code from Controller:
[Code]....
Then the changes made to database. (ChangingSet have then also pending changes).
I have a strongly typed Edit view that expects a viewmodel class. On its post action, I want it to use TryUpdateModel to update the database with the new info. When debugging, TryUpdateModel returns true, but when I look in the database, nothing happened.
This is the controller Action
[Code]....
why this doesn't persist the changes back to the database?
I am following though the examples in Professional ASP.Net MVC 2 and one of the examples doesn't work for me.
[HttpPost] public ActionResult Edit (int id, FormCollection collection) { Dinner dinner = dinnerRepository.GetDinner(id); if (TryUpdateModel(dinner)) { dinnerRepository.Save(); return RedirectToAction("Details", new { id = dinner.DinnerID }); } return View(new DinnerFormViewModel(dinner)); }
I understand that it's suppose to take the values from the FormCollection, and then update the dinner object with it, bit I don't see the collection get referenced anywhere.
If I have the following ASP.NET code (it's not complete - obviously there's a lot missing, but none of it matters):
<asp:GridView> <Columns> <asp:TemplateField> <ItemTemplate> My Label: <asp:Label /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> My Text Box: <asp:TextBox /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
And if I have something like this in the CodeBehind:
Private MyListOfObjects As List(Of MyObject) ... Public Class MyObject Public MyTextBoxString as String Public MyLabelString as String End Class
How can I bind the GridView so that one row is equivalent to one item in my MyListOfObjects list, and so that the data will populate and persist across page loads or postbacks? I've never done custom databinding like this before. All the tutorials I've come across so far only talk about using GridViews directly with Database query results, and that's not what I need.
i have an entity called User with 2 properties called UserName and Role (which is a reference to another entity called Role). I'm trying to update the UserName and RoleID from a form which is posted back. Within my postback action i have the following code:
var user = new User();
TryUpdateModel(user, "User", new string[] { "UserName, Role.RoleID" });
TryUpdateModel(user, new string[] { "User.UserName, User.Role.RoleID" });
However none of these updates the Role.RoleID property. If i try the following:
TryUpdateModel(user, "User", new string[] { "UserName, Role" });
TryUpdateModel(user);
The RoleID is updated but the RoleName property is validated aswell. That's why i'm trying to be more specific on which properties to update but i can't get any of the first examples to work.
I want to bind TreeView control with List object. This List object will be creatd by data that got from database.But, the problem is I can't bind this TreeView with List. It shows the exception "HierarchicalDataBoundControl only accepts data sources that implement IHierarchicalDataSource or IHierarchicalEnumerable."
I have a GridView, I bind it to ObjectDataSource. ObjectDataSource takes data from a database's table. Each row in table has unique ID.
I have a button in each row of GridView that should remove this row from database. My ObjectDataSource returns Object, this returned object contains ID (and some other information, like name, user etc.) however I do not show this ID on my grid.
how can I get these ID after user chooses to delete row, I need to know what I should remove.
Since I upgraded from MVC 2 to MVC 3 RC, using TryUpdateModel causes a NullReferenceException. This problem only occurs when running my action method as part of a unit test. Running it on the actual server works as expected. Here's a stack trace of the exception:
System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.Mvc.JsonValueProviderFactory.GetValueProvider(ControllerContext controllerContext) at System.Web.Mvc.ValueProviderFactoryCollection.<>c_DisplayClassc.b_7(ValueProviderFactory factory) at System.Linq.Enumerable.WhereSelectEnumerableIterator[Code].... 2.MoveNext() at System.Collections.Generic.List[Code].... 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext) at System.Web.Mvc.Controller.TryUpdateModel[TModel](TModel model, String prefix) ... my own code from here on....
In case it matters, my controller has the following signature:
[Code]....
My guess is that this has to do with the new way DI works in MVC3, but I can't figure out what I'm doing wrong. Perhaps there is something in terms of DI setup that is required in MVC 3, but wasn't required in MVC 2?
I'm trying to figure out how to bind an EF4.0 object to my textbox control. I have a call to my business object that returns an entity CFUser that has a FirstName parameter on it of type string. However, after I make the call and bind the object, the codebehind executes which fills the BindUser property with the correct value. However, nothing shows up in the textbox.
I have dropdown in the aspx page. I am calling JQuery on dropdown chnage and JQuery is calling GenericHandler.ashx . The Handler is retuns Serialize JSON string. I ned to bind my Repeater control with this JOSN object. here I am giving my sample aspx page code
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
when trying to update the db from the edit page, i would likt to take one field from the formcollection change things in it and update the model with the changed field.
i m want to bind asp.net menu control from database and some of static value both, i know how to bind menu from DB and also know how to static bind the data in Menu, but i want two add two static record in menu control and after that i want to bind data from DB in menu control, and than again three static record bind in menu..... i think a lot about this and finally i thought to add my static data in dataset at particular positons, but problem is that i dont know how to bind static data in dataset at particular 1st 2nd and 4th,5th,6th pos.
I am Developing a database web applicationI am Creating web controls on page at runtime i.e in Page_Init event. No textbox are placed on .aspx page at design timeI have a datatable filled with a single record.now i want to bind a textbox (created at runtime) with a column of datatable so that when a page is loaded value in datatable's column is displayed in textbox.Other Important thing i want is when i make any changes in Textbox, It should be reflected automatically in a column to which textbox is binded. So while saving records i can save it directly from datatable. I dont want to write following tedious code before savinge.g.
I have a query give me two column and several rows say 20.
The first column i want to bind with dropdown list and second to textbox.
i would like to dynamically create dropdown list as well as textbox as i do not know how many rows i will get it every time.
My select query is like this -
"select subcatid,categoryname from category where catid=10"
That give me say 12 rows with two columns,i want to select the subcatid and bind it with dropdown list and categoryname to textbox that can be edited by user.
am having a class which contains user defined data type property. I have created an instance of that class. When I bind that object of that class to DetailsView it is showing all properties except user defined data type property. Here is the sample code.
public class Customer public string CustomerName { get; set; } public int Age { get; set; } public Address CustomerAddress { get; set; } } Address class looks like public class Address { [code]...
I've got a Dictionary<string, string> object I'm creating:-
[Code]....
and I wanted to bind this to a dropdownlist. I know this is possible in code-behind, but is it possible to do this directly on the asp: control, something like