C# - .NET: Preserving Some, But Not All Query Params During Redirect?
May 17, 2010
if the code below would achieve what I want, which is: Check if the query parameters 'return_path' and/or 'user_state' are present in the query string, and if so append them to the query string of the redirect URI. As I'm not a .NET dev and don't have a server to test this on, I was hoping someone could give me some feedback.
ArrayList vars = new ArrayList();
vars.Add("return_path");
vars.Add("user_state");[code].....
I have an ActionResult method that loads a user-selected project. When the user makes a selection from a select html element, the id is passed in and loads the project. This works fine. The user can also submit the form, which saves certain information and then calls a RedirectToAction that passes the project id back into the load method. This is where the problem occurs. Here's the relevant code:
[Code]....
The problem is that the value of 'projectID_DDL' is null when the redirect occurs. I'm aware that during a form post that variable is automatically mapped to the name of the html element, so my first question is if that precludes referring to the parameter name as anything else, even in code. In regular methods, it doesn't matter what you call the variable, provided it's the correct type for the parameter it corresponds to, but ActionResult methods might differ. My second question is about break points. In order to test that the value of 'projectID_DDL' is what I passed in, I set a break point. It was never hit. I even tried adding a line before the return View statement, thinking perhaps that the return View statement threw the exception, and so its breakpoint wasn't being hit. This didn't work, either.
I'm trying to redirect requests that have a query string to a different domain name.I've got a short url, http://short.url and I want to redirect http://short.url?hello to http://long.url/?hello. So the query string has to be kept by the redirect. To make things more complicated, I would like to rediect http://short.url?hello,hello2 to http://long.url/advanced.aspx/?hello,hello2.Here is the rule I've got now (only dealing with the first part of my question)
However, I am not seeing any redirects. Also, is there a better way to do this? Basically I just want to setup a shortcut to pass queries to a website. These are not meant to be permanent so I'm using redirectType="Found".
While adding the parameters to get/post request they need to be encoded in application/x-www-form-urlencoded form. So do we need to encode values each time ? Does JavaScript have any method for that ? What are the possible caches ?On server side when we read the values we do not decode them we directly say Request.Params["key"] and that returns value. Does that mean that they are automatically taken care when we read the values?
I have an ASP.Net site (happens to be MVC, but that's not relevant here) with a few pages I'd like cached really well.
Specifically I'd like to achieve:
output cached on the server for 2 hours.if the file content on the server changes, that output cache should be flushed for that page cached in the browser for 10 minutes (i.e. don't even ask the server if it's that fresh)when the browser does make an actual subsequent request, I'd like it to use etags, so that the server can return a 304 if not modified.
(note - time values above are indicative examples only) 1) and 2) I can achieve by Response.Cache.SetCacheability(HttpCacheability.Server) I know 3) can be achieved by using max-age and cache-control:private I can emit etags with Response.Cache.SetETagFromFileDependencies();
but I can't seem to get all of these things to work together. Here's what I have:
can browsers do both 3) and 4) like that? When Firefox issues a new request after it expires in the local cache, it does indeed send the etag the server responded with before, but I get a 200 response.setting the variables like above, where would I set the duration of the output caching?
I have two pages in asp.net page1.aspx and page2.aspx From page1.aspx am passing the query string value to page2.aspx If user directly go and load page2.aspx, then i need to redirect to page1.aspx, coz page1.aspx query string value should be passed to page2.aspx
I know how to call a simple old fashion asmx webservice webthod that returns a single value as a function return result. But what if I want to return multiple output params? My current approach is to separate the params by a dividing character and parse them on teh client. Is there a better way.
Here's how I return a single function result. How do I return multiple output values?
I Have A TextBox for Search Box And A button On My About Us Page ...i want to redirect The Search Box Value On default Page With Search Data from My Datalist That is belongs to Default Page.When I Click On Search Button The Value of Search Box Redirect To Default Page And Show value Data from Datalist
I have a page that is used to add info from a gridview into a user's profile. I have explained my issues after all of the code. Here is the applicable code(s) involved:
Protected Sub AddToCart(ByVal sender As Object, ByVal e As CommandEventArgs) For Each gvr In GridViewItems.Rows Dim txtGiftAmt As TextBox = (CType(gvr.FindControl("txtGiftAmt"), TextBox)) If txtGiftAmt.Visible = True Then Dim customPrice As String = txtGiftAmt.Text.ToString 'HERE is where I would like to set the new price variable value somehow End If Next Dim scart As New ShoppingCart scart.AddCartItem(e.CommandArgument.ToString()) Response.Redirect("~/ShoppingCart.aspx") End Sub
This sub is called by the following button when clicked:
[Code]....
Here is the sub from the ShoppongCart Class named AddCartItem:
[Code]....
Here is the problem that I am having: I have one specific item that allows user's to define their own price (for this item only). By putting this price in a session variable seems to be the easiest way to handle this (at least for me), but the session variable's value always "lags behind". By this I mean that the first time the items is entered, it uses the default value of cartItem.ItemPrice. The second time the same item is added (with the intention of a different price), this new item's cartItem.ItemPrice is set as the first session("customPrice").
Because the user is selecting his/her own price for this item, I am not worried about lack of security involved with using query string to pass this price, but I can't get the string passed to the ShoppingCart class correctly (shows up null). Is there a way to append this customPrice to the current page's query string before the Response.Redirect takes place? If I understand this correctly, the Response portion "posts back" to the current page before the Redirect sends us on our merry way, right?
I want to read a message from SQL server and send it via email ,with its formatting maintained.
Sql server has the message stored into it via powerbuilder(different environment),When i send the email with HTML enabled all the formatting with which the message was saved is a lost
I've just updated my ASP.Net code from HttpContext.RewritePath(targetPath) to use the .Net 3.5 function: HttpContext.Server.TransferRequest(targetPath,true)
However, I now no longer have any of the custom HttpContext.Items that I added, before the transfer.
I' m using Reorder list sample for the first time. When it is bound with datasource, and reordered it is working fine. but unfortunately on postback to the server, i',m not getting the reordered items.
I'm developing a service in which users can upload images and save them in a library. I want to preserve the original file (so people can upload high resolution images), but also make a copy of the image to use as a thumbnail.
The problem I have is that the thumbnail "weights" much more than the original file, proportionally. When I check the basic properties of each file (in XnView), I can see that the original files are for instance saved with 32 bits per Plane, whereas the source file will have, for instance, only 24 bits per plane.
What would be the correct way to make a copy of the original file while still using compression? This is an excerpt of the code:
private void ResizeImage(string originalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider, string directory) { System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(originalFile); // Prevent using images internal thumbnail
I have a web form with a repeater and an update panel with a ListView, the ListView contains a LinkButton, when I click the LinkButton a new window opens, when I click the Back Button I return to the form with the repeater but the ListView has disappered leaving a blank Update Panel.
how I can preserve viewstate and see the ListView when I click the BackButton.
I have an asp:TreeView in my MasterPage, which is loaded on demand from a database using some custom functions to fill the Tree. My tree will only ever be 4 levels deep (root -> 1st sublevel -> 2nd sublevel -> leaf nodes) What I want to achieve is preserving the expand/collapse state of this TreeView while navigating between different aspx pages, that all share the MasterPage holding my TreeView. I have been using the methods described in these resources:
[URL]
but I am still not getting the results I want... My TreeView markup in the MasterPage looks like this:
[Code]....
I am using a custom class to save and retrieve the state of the TreeView, the code is pasted below:
[Code]....
In my Page_Load on MasterPage I have:
[Code]....
where Reload() makes sure I'm loading the TreeView for the correct argument (based on a user selection) And in TreeView_Unload I have:
[Code]....
With all this in place, my TreeView is behaving almost as I want it.. I can expand the root node, it will be populated and I can browse to a new content page and have the same treeview appear in the MasterPage (with same expanded root)... BUT if I try to expand any of the 1st sublevel nodes, I end up with a completely collapsed treeview instead. After some debugging I have come to the conclusion that the "NodeExpanded" event gets the ROOT NODE as event argument instead of the 1st sublevel node that I clicked. When the user changes the option that makes the TreeView re-populate with new data, I simply do a "HttpContext.Current.Session("TreeViewState") = Nothing" to reset my saved state.
If you need more info / code snippets, let me know and I will post it.. But I felt there was no reason to post my complete source, as I have multiple files with about 500 lines of code each (there's a lot happening on the MasterPage, other than the TreeView)
I've created a dynamic button from another control outside of the update Panel. The button is given an ID and such. When the button is click, a postback occurs and I've re-created this button during Page_Init, Page_PreLoad, and Page_Onload and NONE of them is preserving the value.
The only way for me to find the control was to look at the Page.request.form's allkeys and compare the string with a any text string that contains: Button. Because I ID'd teh button as: ButtonRow_0Col0. But the actual ID is null. However, when traversing through page.request.form, the allkeys shows that ID with no problem.
So how come the actual ID is lost after a partial postback yet, the page.request.form's allkeys can pull out its allkey's value??
Ok so I have two listboxes on my page one for users and another for cases. For some reason the users listbox preserves state, but the cases listbox doesn't.
I tried setting them both to autopostback, but that didn't work. The users listbox would preserve the selected item, but make it the first viewable item in the list. The cases listbox still reset the selected item to the first.
My page load:
Code:
'.... If Not Page.IsPostBack Then ''Sort later. Dim i As Integer = 10 For Each usr As String In AttRoleProvider.GetUsersInRole("Role1") Me.ExistingUsers.Items.Add(usr)
I am trying to add a user control into a div at runtime. I can add the control no probelem but it overwrites the previous control added.Basically, I am trying to add passengers to a travel system - the passenger details are in the user control and I don't know in advance how many there will be. I have an add new passenger button which should append the new user control into the div without overwriting the previous passenger. The code is c#/.net 4. I have tried to save the control data into viewstate and re add it with the new one but that also doesn't work. Here is a snippet of the code I'm using
foreach (Control uc in p_passengers.Controls) { Passenger p = uc as Passenger; if (p != null) { p.SaveValues(); } }
however, p.SaveAs() (just writes the control values into ViewState) is never hit.
I have a GridView and a DataList on the same page in a father/son relationship.I am trying to have the selected row on the GridView be in 'focus' on postback so if a person toward the bottom of the list is selected then the scroll position is maintained.I am trying to do the same with a DataList too.Heres my javascript.
[Code]....
and I have this around the GridView :
[Code]....
and this around the DataList:
[Code]....
The funny thing about this code is when I comment out the DataList portion, the GridView scroll postition works, when I comment out the GridView javascript portion the DataList scroll postion works.Is there a special way to make sure both of these can work or is it a javascript issue?