MVC :: Clearing ValidationSummary When Form Returns A Download Request?
Sep 20, 2010
Here's my setup:
Simple mvc page with a few controls that includes a validation summary area.
Once the fields are completed there's a download button.
If I enter something invalid, as expected, my controller code updates the UI with the appropriate error. However, if I then correct the error, and then click the download button a file is downloaded, but the UI never gets updated - presumeably since there's no update on the view.
To prevent duplicate requests (i.e. pressing F5 right after clicking a command button), I've setup my page base class to ignore the request if it's detected as a duplicate.
When I say 'ignore' I mean Response.End()
Now I thought I've seen this work before, where there's an issue, I just Response.End() and the users page just does nothing. I don't know the exact circumstance in which this worked, but I'm unable to repeat it now.
Now when I call Response.End(), I just get an empty browser. More specifically, I get this html.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD> <BODY></BODY></HTML>
I setup the following test app to confirm the problem is not elsewhere in my app. Here it is:
When you load the page, clicking any button does what is expected, but if you press F5 at any time after pressing one of the buttons, it will detect it as a duplicate request and call Response.End() which promptly ends the task. Which leaves the user with an empty browser.
Is there anyway to leave the user with the page as it was, so they can just click a button?
Also; please note that this code is the simplest code I could come up with to demonstrate my problem. It's not meant to demonstrate how to check for dup requests.
EDIT: Another change that will allow me to achieve the same results would be to disable all my event handlers.
I have a web form, and it appears that when I add the AJAX control toolkit on my webform, my Request.QueryString is clearing out. Here is what happens:
1) User clicks next on form 3, and I load up form 4 (form 3 passes query string to form 4)
2) User clicks next on form 4, and form 4 checks the query string that was passed by 3, and it's emtpy
This only happened when I added AJAX functionality.
I'm using HttpModule to capture requests to the web server. Before processing the page I'd like to check the values contained in some keys of the Request.Form collection and according to some logic change if necessary. I'd like to do this when BeginRequest event is fired. The problem is that the Request.Form collection is readonly.
I have an asp.net form in which i want to clear all the data what I entered in textbox,dropdownlist etc. So how can I do without going to each textbox and set the value.
like TextBox1.Text=""; etc. How can i clear all values in a form ?
and I'm trying to clear the dropdown lists and the text box but also still give the thankyouLabel.Text message back to the user to give them some idea that their data has been submitted. I know that with a response.redirect that you're doing a postback but what I'm wondering is if there's a better way to clear a form so I can give users a clear form and also my thankyouLabel.Text message.
I have applied validation through JQuery Validation Plugin on my page. The validation works fine but once the Clear button is hit to clear out all the fields on the form, and then the save button is clicked again, the validation doesn't fire and the form gets submitted. I have called the following javascript function on click of Clear button to clear out all the form fields :-
[code]...
The Clear button is on a ChildPage and ResetForm function is on the MasterPage.
I've got this application that works locally and when deployed and using a .mdf SQL Express database file (which I usually use for testing purposes). However, when I change it to work with our SQL Server 2008 the app works but the service doesn't. For example if in my code behind of a page I have a button that adds data to a table such as this it works fine:
public static string connString = @"Data Source=server1;Initial Catalog=Project;Integrated Security=True"; protected void btnAddProj_Click(object sender, EventArgs e) { using (var sqlc = new SqlConnection(connString)) { sqlc.Open(); var cmd = sqlc.CreateCommand(); int intProjectID; // Add the project info to the database cmd.CommandText = "INSERT INTO tblProject VALUES(@ProjName,@ProjTeam,@ProjStart,@ProjEnd)"; cmd.Parameters.Add("ProjName", System.Data.SqlDbType.NVarChar).Value = txtProjName.Text; cmd.Parameters.Add("ProjTeam", System.Data.SqlDbType.Int).Value = ddlTeamSupported.SelectedValue; cmd.Parameters.Add("ProjStart", System.Data.SqlDbType.NVarChar).Value = txtStartDate.Text; cmd.Parameters.Add("ProjEnd", System.Data.SqlDbType.NVarChar).Value = txtEndDate.Text; cmd.ExecuteNonQuery(); } }
My web.config is setup to use impersonation on that server and all works perfectly well. However, for my service the query doesn't seem to return anything and I get a 400 Bad Request error. The code for the jquery is:
$.ajax({ type: "POST", async: false, url: "Services/ProjectService.svc/test", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { console.log(data); } }); And for the Service: [ServiceContract] public interface IProjectService { [OperationContract] [WebInvoke(ResponseFormat = WebMessageFormat.Json)] ArrayList test(); } public static string connString = @"Data Source=server1;Initial Catalog=Project;Integrated Security=True"; public ArrayList test() { var sqlc = new SqlConnection(connString); sqlc.Open(); var cmd = sqlc.CreateCommand(); cmd.CommandText = "SELECT ProjectID FROM tblProject"; var reader = cmd.ExecuteReader(); ArrayList temparray = new ArrayList(); while (reader.Read()) { temparray.Add(reader[0]); } sqlc.Close(); return temparray; }
If instead of querying the database I have the service just return static data then it works fine. What could cause my service not to be able to connect to the database when the rest of the code behind for the app works?
when i browse the page with firefox and click on the input Request.Params["btnshoppingCart"] != null or Request.Form["btnshoppingCart"] != null is statisfied.
When i browse the same page with internet explorer 8 and click on the same input Request.Params["btnshoppingCart"] != null or Request.Form["btnshoppingCart"] != null is not satisfied. When i used the watch i saw that there is no key by the name of "btnshoppingCart" in either Request.Form or Request.Params if input is clicked from internet explorer. However when it is clicked from firefox there is value "shoppingCart" inside Request.Form and Request.Params against "btnshoppingCart" key. One more strange thing that i observed was that are two keys "btnshoppingCart.x" and "btnshoppingCart.y" inside both Request.Form and Request.Params whenver clicking is done from both internet explorer and firefox. This is happening against all inputs of type image irrespective if the input is present inside a html form or not. Forms are created like this
<% using (Html.BeginForm("Action", "Controller", FormMethod.Post)){%>
The version of internet explorer is 8.0 and firefox is 3.6.6
I have a wcf service that randomly begins to fail when requesting the autogenerated javascript that wcf supports making. But I have no luck tracking down why. The js thing is part of the wcf featureset, so I dont know how it can suddenly begin to fail and be unable to work until IIS is recycled.
The http log gives me:
2010-06-10 09:11:49 W3SVC2095255988 myip GET /path/myservice.svc/js _=1276161113900 80 - ip browser 500 0 0 So its an error 500, and that is about the only thing I can figure out. The event log contains no information.
Requests to /path/myservice.svc works just fine. After recycling IIS it works again, and some days later it begins to fail until I recycle IIS.
I'm experiencing a really confusing error. Exactly every other time the page returns
ERROR [23000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Integrity constraint violation:uniqueness constraint violation (7518)and else it works nicely.
Here's the SQL:
SELECT SlsOrder.Orderdate, SlsLine.LineNum, CASE WHEN SlsLine.AllDelivered = 1 THEN 'X' ELSE '0' END AS 'AllDelivered', Item.ItemName, Item.TechName, SlsLine.IntDlvDate, SlsLine.OrderNum, SlsLine.ItemCode, SlsLine.Version, CEILING(SlsLine.Qty) AS 'Qty', Item.QtyUnit, ROUND((SlsLine.Price*SlsLine.Qty),2) AS 'rowSum', ROUND(SlsLine.Price,2) AS 'Price', IFNULL(SysText.InfoText, '-') AS 'InfoText' FROM PUB.SlsLine INNER JOIN PUB.SlsOrder ON (SlsLine.OrderNum=SlsOrder.OrderNum) INNER JOIN PUB.Item ON (SlsLine.ItemCode=Item.ItemCode) LEFT OUTER JOIN PUB.SysText ON (SlsLine.SlsLineKey=SysText.SysTextKey) AND SysText.NoteType = 'OrdConfRowE' AND SysText.ConsTxt = '' WHERE (SlsLine.OrderNum = '" & o & "') ORDER BY SlsLine.LineNum
I have an ASP.NET page (using ASP.NET AJAX and the Telerik RAD components) that provides a data table and an option to download data in CSV format.I have a requirement that a single button allow the user to download a data set. I have a system set up that's nearly working for me based off the solution in http://stackoverflow.com/questions/104601/asp-net-response-redirect-to-new-window
This actually works quite well. When I click the 'Export to CSV' button, the page's UpdateProgress kicks in and my loading overlay appears (it's a CSS div that covers the window when visible). This can take some time depending on the data set (potentially several minutes), at which point I'm getting a window popup with my file.
I have a dynamic catalogue, where customers select products they are interested in. The manager of the company I am doing this for would like to be able to create an up to date offline catalogue at any given time, to send out to customers who dont have an internet connection. So far its going really well. I am using Server.Execute to get the content for each page, then putting it in static html pages and changing the dynamic links to static html links (ie changing all aspx links to htm). I am able to output all the pages for about us, contact us, home, and the entire catalogue. However, one of the stylesheets which is included in the page based on the URL (if the page is in the administration section then it is not included, otherwise it is) is not being included in the pages when it should be. I have tried outputting the URL but it just returns the URL of the calling page, not the page being called.
I am new to webmatix and I do not do much development. I was trying to get some values from a request object and it's probably something very stupid I am doing wrong but really I cannot see what it is. This is the code I am trying to use, but I get no value from any items from the form:
@{ Layout = "_SiteLayout.cshtml"; Page.Title = "test"; if (IsPost)
I am creating a Payment request form that my customers are going to fill out and submit so they get paid I would classifi it as an invoice. Does any one have any examples or point me to a good place to read about creating this type of form and the database tables to support the application?
The form will basically have some fields they will fill in for the header then in the related stuf come charge amounts with there types aka partnumbers of sorts and also the ablity to put in there own types / aka partnumbers and there amounts. I wont be housing any amounts they will supply all the information of payment amounts and types.
I wrote a web services with Windows authentication, when i consume this WS from my app inside my network all work great, but when I consume this WS outside my network the WS return "The request failed with HTTP status 401: Unauthorized"I'd try the URL in an explorer page and all works great.In my app I use this:
I am building a simple intranet site and want to get the employees user name, but when i use Request.LogonUserIdentity.Name , i keep getting the servers credentials and not the users. what am i doing wrong and is there a better way to do this.
Im dynamically creating several dropdowns onclick of a button... but the dropdown returns null when im trying to get the values on submitting the form... i read tat during postback all dynamically created controls will be lost... s there a way to register the controls... i want to access the item selected in the dropdown .... expecting a positive reply...
I have an idea of how to do what I have in mind, but I would prefer to ask for some advice just in case anyone can think of a better way.The idea is a simple application where administrators can upload any kind of file. Once the file is uploaded, they give out a username and password to a client, and the client will then access a private area where they will be able to view specific files available for them. ALL THIS IS DONE. My question is... because the browsers can process certain type of files (for instance a JPG or a PDF), they won't automatically prompt the client to save it on their computer, and they will open int he browser. I have solved this issue before by adding a few lines of code to the Response and modifying the content type, something like: Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=logo_large.gif"); Response.ContentType = "image/GIF"; Response.WriteFile(Server.MapPath(@"~/logo_large.gif")); Response.End();However, that would mean I'd need to change the content type for each file (JPG... GIF... PDF ... WORD FILE). So I'd need to find out the content type for each one, and dinamically change it. This way it would force the download for all files. Now... is there an easier way? Remember that I need to have many different type of files, if it was only JPGs for instance, it would be easy.