Which Types Of Objects Can Place In View State
Aug 27, 2010I want to know why we must set the serializable attribute to save an object in view state.
Also, which type of objects can we store in view state?
I want to know why we must set the serializable attribute to save an object in view state.
Also, which type of objects can we store in view state?
I have say class/ojbect one which I am returning as details. But then there is a second class that is related to the first that I want to list (and have an option to look at the details). How do I get return both of those?
Example is like in an item as the main piece but there may be details or other items that are related to the main item. I will select them with a linq query but then how do I return them to the same view?
Do I need to have some sort of partial or other form to display the second object type? I don't see where returning the view I can return both.
My thought for right now is to create a new class that contains both of the object types but I know there has to be a better way.
(I have a feeling i'm making a mental error thinking this is possible, because it seems too easy, but here goes)
For my intranet web app with 20 users on slow machines, the view state is slowing down their browsers.
But the network is local and fast. So I think to myself, why bother putting all that data on the user's browser?...Something like putting it in the database and then all the page needs to maintain is a unique key. But then I remembered that's how session state pretty much works.
QUESTION: Am I missing something or is this really possible?
i have been going through the documentation of viewstate. [URL]It was mentioned that objects that can be serialized are stored in viewstate. What is the meaning of serializing of objects ??
View 2 RepliesI am getting a serialization error trying to use Session State Server instead of InProd. However, I can't figure out what is causing the error in session. I was given some code to add to the page to loop through the session object and figure out if each item in it is serializable. My problem is I don't know where to place the code in the ASP.NET page. In tracing through the code, the error just appears after steping through objects outside of the page and not when setting session. There must be some place that I can place the code on the page that is after all session objects are set but before the page will error. Where would that be?
View 2 RepliesThis is in my opinion an abstract problem and I hope I can explain it well. I happened to find the same kind of problem in a completely different project and now I have it again and I would like to avoid it if possible.
I'm creating some classes to simplify some tasks for some specific requirements we have in some projects at work.
I have a class that creates objects which maps the values from webcontrols to an object properties similar to this
[URL]
The problem I have it's sometimes I have to store a non container object in a place (in an object's attribute) and sometimes I have to a store a container object in the same place for storing the values of a webcontrol (a webcontrol can sometimes hold several values like a checkboxlist). I dont like this at all, because some time ago when working in a non commercial compiler, when parsing and generating the intermediate code I had sometimes to store a container in a place, and sometimes I had to store a non container in the same place, and having to ask in other parts of the code if what you are reading is this type of object, or this another type of object, it is something really annoying and it mess up the code. Is there any tips about what it would be better to do to avoid this kind of situations or nothing can be done to avoid it sometimes?
I've created a whole bunch of rather complex classes and now i'm starting to work on the ASP.net user interface. Basically the user will open 1 page which will be used to load, edit, save an object. The object has many fields and they are often other classes i've created. To create a nice interface i've used popups and used AJAX to reload parts of the page to avoid reloading the whole thing.
My plan was to create the object and save it to the session. Then each time the page is loaded copy the object values to the asp fields and do the reverse when the page has been submitted copying the asp values to the object field then updating the session object.
So the code will go something like:
onload:
if session is not null load from session otherwise create new
this.txtID.text = object.id
this.txtName.text = object.name
etc etc
on submit:
object.id = this.txtID.text
object.name = this.txtName.text
etc etc
update session.
Is this what you guys would do? or am i over thinking this, seems like a lot of code to load all the object fields each time the page is opened and submitted etc.
Just looking to bounce ideas of off other developers :D
Lets say I am doing a shoping cart. I authenticate the user with a session variable.For example:
If(Request.IsAuthenticated)
// Here I want to add to the shoping cart.
// Can I do the following
Session["Cart"] = "Washing Machine";
Now will this Session["Cart"] value which is washing machine here be unique to diff customers?
I have a view which takes two objects: booking and list of reasons for canceling that booking.I have two classes: clsBooking, clsBookingCancelationReason I can read both objects in my view - no problems there. After I read the objects, I display the booking details and I generate a list of cancelation reasons in the following way:
[Code]....
The code above generates a list of cancelation reasons.How do I pick up the selected ReasonId from the list?
I need to generate a link that will contain the bookingId and the selected reason for canceling the booking.I can get the bookingId out easily since it's stored in the Model...but how do I go about the selected ReasonId?
I see two means of working with session data in ASP.NET MVC:
System.Web.SessionState.HttpSessionState, available on HttpApplication
System.Web.HttpSessionStateBase, available on Controller
Data stored in one seems to be available in the other. Unfortunately the only common ancestor of these two types is System.Object, meaning that I can't create reusable utility code for the abstraction of either.Why is the API this way? Is there an important difference between the two that I am missing?
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)
Is there any way or process to serialize the the objects?? i am trying to store the instance of few control in viewstate but it shows error msg that it is not a serialized object. should i perform some steps to serialize the objects ???
View 9 Replies[Code]....
What I want to achieve is the ID of the property: item.Item.ID to be bound to the ID from the (route)URL. However I can't get it to work. I tried using [Bind()] attribute.
I fixed it now using a hidden field in the form like so:
<%= Html.HiddenFor(model => model.Item.ID)%>
However this feels a bit icky. I'd like to know if there is a better cleaner way of doing this?
How I can get the generated view code below to place the editor-field to the right of the editor-label, on the same row? I don't want to mess with the generated defaults, e.g. remove the divs, as I am still in very early dev and regenerate views quite often.
<div class="editor-label">
<%: Html.LabelFor(model => model.Suburb) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Suburb) %>
<%: Html.ValidationMessageFor(model => model.Suburb) %>
</div>
I've created a blog for my first asp.net website. Ive got a blog class as my object. Ive created a number of methods to access my blog articles using LINQ to SQL.
Each method returns a list of objects ready to be used in the appropriate web user control.
In my head i need to cache these lists of objects that are returned, but need to know the best way of approaching this. So i have come up with two possible options
1: Make one method to retrieve all blogs in a list<Blog> and cache this list to be used for all other methods or
2: Cache only the required methods that really need it.
I have a view that is based on a view model. This model has a single property called Entity, of type ServiceProvider, which is a Linq2SQL object. This object has relationships to 2 other objects Address and ServiceProviderGroup. In a HTML view I have textboxes that allow the properties of the Entity property to be changed and also the properties of the Address object related to it.
E.g: ViewModel.Entity.Code, ViewModel.Entity.Name, ViewModel.Entity.Address.City, etc, etc.
There is also a selectlist that will allow the Entity.GroupId (int) property to be changed. This defines a relationship to the ServiceProviderGroup class which is also accessible via a Group propery. (standard linq2sql back references)
The Edit[Post] method accepts an instance of this view model and all properties (on the Entity, Entity.Address properties) are set as expected. I then lookup the original object in the database and I also bring back the original address and group data.
E.G: entity => entity.Code == viewModel.Code && entity.Address.Id == viewModel.Address.Id && entity.Group.Id == viewModel.Entity.GroupId (I'm not looking at the code, but it's something similar to this)
Either way the original Entity, Entity.Address, etc, come back from the database. I then apply the changes from the view model to the original object using UpdateModel and everything is updated as expected. But, if I try to change Entity.GroupId, i.e. change the relationship on the entity to another ServiceGroupProvider object, I get an exception in the generated code of the ServiceProvider object.
This happens in the GroupId property of the ServiceProvider class (viewModel.Entity). When it reaches the line if(!this.HasLoadedOrAssignedValue) it enters the "if" statement and throws an exception. When the data is first read from the database it skips this part. But, when UpdateModel attempts to apply the new Entity.GroupId value it throws the exception.
I'm trying to pass a list of items from a LINQ query to a View, but I'm having trouble figuring out how to resolve a type issue. Here's the error:
The model item passed into the dictionary is of type 'System.Data.Linq.DataQuery`1[Project.Models.Diagnostic]' but this dictionary requires a model item of type 'Project.Models.Diagnostic'.
The issue seems to originate with this code from my Controller:
[Code]....
I tried changing the IQueryable<Diagnostic> to var and got the same error. Also played around with something like:
[Code]....
But then VS2008 says that diagnostics could never be null, and that's may not the best (or even valid) way to do it.
I would like to pass List<SelectListItem> (not selected item but the whole "List" object) back to controller.
for example in my GET controller i would have this
ViewData["list"] = some select list from repository;
then on post I would like to get the list back from view..pretty much i'm trying to use ViewData["list"] as storage..this way I would use ajax to remove or add items to/from the list.
I have problem in maintaining the application objects in the server when it is deployed in the web farm.In our application i'm storing the sessionID and and the column value ( "tvktnx55vl5mzr453dmaehit " + "A101" ) in arraylist and storing it in application object. when i test this it is ok. but when we deploy it we have one issue that is we cannot share the application object in web farm.
View 1 RepliesI am having a ASP.net application it having three pages ,page 1,page 2,page 3,when the user navigating between this pages I want to maintain the view state in page level after postbacks(i.e.) .If a user visits page 3, passing some query loads some data .then he moves to page 1 doing some entries .after that he once again moves to page 3 now I want to display the data previously available at the time he moves to page 1, same
way I want to do to my three pages up to the user logging out.
i have one method which save datatable in viewstate.i am calling this method in. page_load2. Prerenderthe page was every heavy,i did tracing of page i found due to calling of method from preprnder it doubled the viewstate sizewhat was the reseon behind this.
View 2 RepliesI have been trying to design a form, which uses a view model that contains an object array. I want to set up this form so that when the submit button is clicked, all the members of the array are updated. Here is my code:
The class definition of the array element:
[Code]....
The problem is that when I clicked the submit button, none of the luSubject objects in the array Subjects got updated. But if I set up some initial values for the members of the luSubject objects, for instance, set the Name field to be "Maths" in the constructor of luSubject class, then it got displayed on the text box when the form page was loaded. This suggests that this form could display the data in the array, but cannot update it.
I'm really new to MVC (just started a few weeks ago) and new to Ajax (never looked at it before today). I need some design / technical advice concerning Ajax, MVC, loading partial views, and posting / getting from a view. What I'd like to do it load a partial view that takes in a list of objects that have been queried from my db into an details-type view. The details view already has some other content that has been handeled and loaded from information pulled from my database and setup through some actions. It is strongly types to a model.
Below is the partial view I've created thus far:
[Code]....
And here's a portion of the Details page:
[Code]....
I'm not sure what to do for the Ajax.ActionLink. I'd like for a use to be able to type into the text box on it's left and hit "Add" (the Ajax link) and have the application add the content in the text box to the database. Should it be something else? An <input>? The Controller code piece is below:
[Code]....
So it should be adding the member into the repo / db and then reload the contents of the partialview. Instead, it's reloading the whole page and not just the partial view. (the url is changing from /project/details/5 to /project/membersection/).
I have a grid view control button (edit mode) that I would like to use with a modal popup message.
The button was originally designed to open a panel with a detailsView control.
So could I grview Button -> modal popup with another panel (click on a ok button here) -> detailsview panel.
Here is the code I tried :
[Code]....
I've just upgraded my development machine from XP SP3 (IIS5.1) to Win7 x64 (IIS7.5)
Since doing this, my app has started to behave differently. Within it I store users' preferences/access levels using an instance of a class that I store within the Session object. This class is shown:
[Code]....
My requirement is that on each page request (other than the login page), the application should check that the Session object exists. The page data is therefore shown based on the values within the session object (e.g. which customer account they are using etc)...Previously on IIS5.1 if I was logged into the app, but made some changes to a file within App_Code, or Web.Config for example, when I then continued to use the app, I would get kicked out to the login page straight away. This is the intended behaviour. Now however, on IIS7.5, the app continues to provide access to the pages, but debugging shows that the session value has had all of its values set to 0 (zero). Therefore, the pages continue to load but the data shown is corrupted because the app no longer displays it accurately. Here is the code I use which (on IIS5.1) caught this occurence. Can anyone offer any advice on just what's now happening
[Code]....
I have tried changing this line:
[Code]....