Returning Complex Types (multiple Lists) To Client Side Using Jquery.ajax?
Feb 8, 2011
I'm designing a page which makes an ajax call (via jQuery.ajax) to a page method on the server side.On the server side, I have two classes: Agent and Channel.
In the page method, I'd like to return a List<Agent> and a List<Channel> to the client side. How can I return two lists to client side? should wrap them up in one class like:
I am posting a Jquery Json serialized object to my controller but not all of the data is getting passed. One of the members is a complex type that is also Json serialized. This is the one that isn't getting through to the controller.
Here is the class I'm passing to my controller via Ajax post. Note the complex type, RoutingRuleModel.
SourceCodeModel.cs:
[code]....
Problem: SourceCodeModel contains correct values EXCEPT for it's complex member: RuleModel, which comes back as a RoutingRuleModel with default (null or 0's) values.
I have all the properties of the class Person as required using Data Annotations.
[Code]....
In the View I loop the List like this:
[Code]....
Generated HTML:
[Code]....
Result:
Does not work at all.
Other things I've tried:
Tried using these HTML Helper methods instead:
[Code]....
Generated output:
[Code]....
Result:
Interestingly, when I trigger a validation on the first textbox, it fires simultaneously for all of the textboxes. The rest of the textboxes do not trigger validation at all.
Looking at the generated id and names for the textboxes and their corresponding error text span element, they areall identical.
Anyone figure out how to use Client Validation with Data Annotations with a List in the view data, supporting Model Binding?
I'm want to build web site in asp.net(because I know this language) in server side, and js (probably jquery) in client side, with Ajax technology. I heard that ASP.NET AJAX is too slow, if it's true (is it?) - what are the other options (to combine ASP.NET and Ajax) for me? Which tool combine all that technologies?
I'm using a JQuery plugin [URL] to add auto-completion to a "city" textfield. The component calls an ASP.NET page that simply loads an array of all possible city values (>8000) and then iterates that array returning those that start with the text the user has so far entered.
The thing is, it's pretty slow in real use. It lags behind what the user types to the extent that most of the time the user probably won't notice that it's there.
So, my question is, how can I speed it up?
I had thought that an array would be a better way to go than putting the data in a database and having to hit that multiple times. Do others agree that having this information hard-coded is the way to go given that it's not at all volatile and needs to be all about speed of return?
If so, what would you look at to improve the speed of performance? Should I be caching the data on application start and accessing it from memory? Would I be better off instead with multiple arrays, each containing values starting with a particular letter so I can go straight to the relevant one and thus iterate a much smaller array? Or am I missing a much more obvious way to go about this?
I have a web form which does a full page postback when a button is clicked. This is caused by an update panel trigger. Client-Side: When the button is clicked, an animation gif is displayed Server-Side: When the button is clicked, the server side event changes the content type to excel, binary writes out excel content (byte array) and does Response.Flush() and Response.End() Client-Side: User is asked to either open or download the excel file. Animation gif is still displayed.
Question: How can I detect client side (using jQuery or Ajax) that the response has been completed. There is no page postback because the code-behind has cut off the response by using Response.End().
I've tried Populate ASP.Net DataList by binding DataSet Client Side using jQuery AJAX posted in [URL] .... while binding records in datalist using JQuery there is no problem, i want to bind image inside of the datalist. There is a field imgpath which stores image path. Now i want to bind the image which path is stored in the database using JQuery.
I have a page that downloads a dataset and streams the output to an Excel file by modifying the response headers.
I want to write an AJAX call on the client side that can display a modaldialog while the file is being generated and dismiss the modaldialog when the file has been fully rendered.
I can turn the dalog on when the user clicks a link, but for some reason my pages return readystate 4 and status 200 prematurely. (These are the codes that say the page is done)
Because this is happening, either the modal dialog is dismissed immediately or I need the user to dismiss it.
Has anyone seen this before? Is this an issue with streaming a file instead of hitting a physical page?
Does anyone have a work-around, or will I need to have the user manually dismiss the dialog?
I'm having trouble finding a good tutorial on binding complex lists to an object. Essentially we have currencies that are user defined, we need to generate a form for each currency to allow the user to input exchange rates. I think I'm doing my list properly according to this post, however I'm not getting any data bound. here is my ASPX snippit.
[Code].... Here is my form data object and associated objects.
[Code]....
Here is the html that is rendered.[Code]....
I'm having trouble finding a good tutorial on binding complex lists to an object. Essentially we have currencies that are user defined, we need to generate a form for each currency to allow the user to input exchange rates. I think I'm doing my list properly according to this post, however I'm not getting any data bound. here is my ASPX snippit.
Suppose I'm building a StackOverflow clone using webforms ASP.NET and jQuery. The Question page has a question, several answers, and comments under each. Requirements:Users can post new answers and comments, and edit existing ones, without postbacks. No UpdatePanels; the AJAX calls retrieve just the JSON they need, not HTML fragments. The page loads with all existing answers and comments in place (no javascript needs to run to read the page).
What I'm trying to figure out is how to do this without having to maintain two sets of markup (one that's bound on the client using some form of jQuery templating, and one that's bound on the server using traditional WebForms).
I'm working with the MicrosoftAjax.js libraries to make my webservice calls via javascript, right now all my services are returning basic types, like string, int, bool. can i also have my services return things like DataSets, DataTables, or custom Classes that I have built to my javascript side?
Are there advantages in creating complex types in EF4 Entities and then use the complex properties in the repositories; instead of creating the aggregates in the the repository themselves? I.e. If the customer repository consists of properties of 3 entities: customers, addresses, email would it make sense to create a complex type consisting of the address and email properties, and add them as a complex property of the customer entity then just call the customer entity and the complex property in the repository, rather than just creating the repository class and aggregate the entities in the repository.What are there advantages or disadvantages in doing this in a MVC3 application?
I know that I can receive an javascript object from the server via ASP.NET AJAX using Json. But I am not sure how can I send an javascript object from my client-side javascript to my server-side code. And if I can, how can I extract this object in my server-side code and access its members?
I have jquery using ajax/json to grab an elements ID and then hits:
[System.Web.Services.WebMethod] public static string EditPage(string nodeID) { DataTable dt = new DataTable(); using (SqlConnection con = new SqlConnection(Global.conString)) using (SqlCommand cmd = new SqlCommand("contentPageGetDetail", con)) { cmd.Parameters.Add("@ID", SqlDbType.UniqueIdentifier).Value = Global.SafeSqlLiteral(nodeID, 1); cmd.CommandType = CommandType.StoredProcedure; cmd.ExecuteNonQuery(); using (SqlDataAdapter da = new SqlDataAdapter(cmd)) { da.Fill(dt); } } if (dt.Count > 0) { string pageTitle = dt.Rows[0]["Title"].toString(); string contentID = dt.Rows[0]["ContentID"].toString(); return pageTitle, contentID, nodeID; } else { return "Failed"; } }
When it's time to return I want to grab all content returned from the stored procedure back to the jquery method in the success section and set a hiddenfield, dropdown value, and a title in a textfield. In the jQuery I tried using "pageTitle" but it came up undefined. What do I need to do jQuery side to grab whats being returned and populate fields in my Web Form before showing the form?
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?
I reordered some items in a listbox using Javascript. When I read the items in a postback in the code behind (ASP.NET), the order is in the original order. How do I get the same order as shown in the screen after Javascript manipulation?
I m using site login Control in my login.ascx file and disaplaying login control in Div so if there is login link in page and i click on that then Login Div will popup which is site login.May i know how can handle error like username or password is incorrect on client side instead server side?