Getting Value Of HTML Select Element On Form Post?
Mar 29, 2010
I have a View that has a select drop-down list and an edit button within a form. What I want to do is have the user select one of the options from the select element, click on the edit button, and get the value of the selected option in the Controller method.
I created my form with <% Html.BeginForm(): %>
and the Controller "Edit" method should be called.
I looked through several online examples, but each one focused on how to set values and the default selected value of the select element, rather than retrieving it from the code in the Controller method. I tried grabbing it from the Request.Form collection like:
string val = Request.Form["myDropDownList"].ToString();
and also:
string val = Request.Form["myDropDownList"];
Obviously I didn't do this correctly, because I get a null reference exception. Does anyone have the solution to this issue?
I am trying to collect the chosen value from a html select element and insert it into an SQL Server 2005 database and I get the following exception caught:
Failed to convert parameter value from a HtmlSelect to a String. (I've been converting everything to String before submission to the DB using ToString();
I want to replace a form element with a div and keep the inner html of the form inside the inserted div element. i tried jquery it gives me unkown html element as selection result,
I am using Javascript to alter the innerHTML attribute of a <td> and I need to get that info back in the form submittal. The <td> corrosponds to an <asp:TableCell> on the server-side, where the Text attribute is set to an initial value.
The user cannot enter the value in this particular field. Instead, its value is set by me (via client-side script) based on actions that the user performs. But this field is useless to me if I can't see its value on the server-side as well.
I'd like to avoid using a read-only textbox, because those are difficult to resize dynamically. Can an <asp:Label> be used as form data? Is there any way to achive this without letting the user manually enter the data? Or is there a simpler way to store a string as a variable somewhere and send it back as form-data?
For some reason I can't get an ajax post action to work if the text inside an textarea contains HTML. In the text area I am entering <h1>test</h1>, when I do that, I can click on the Save button all day if I want, nothing happens. Not sure whats causing this, but it also appears to do it if I don't use the ajax form and just a standard html form.
Here is the code for the controller:
[Code]....
Here is the code for AjaxForm:
[Code]....
And here is how I am putting the control on the form:
I'm trying to extend the functionality of an ASP.net application that I'm working with. For its logon page, it uses an html form to post to a dll to handle it's login logic. I'm wondering if there is any way to redirect that html POST to my C# code so that I can do some processing and then (and this is the part that I haven't figured out yet) POST it to the dll so that the regular logon logic can continue. I can make changes to the logon page, but the final step must be to do an HTML POST to the dll. I can't change that.
I am working on some ASP.NET web forms which involves some dynamic generation, and I need to add some onClick helpers on the client side. I have a basic outline of something working, except for one huge problem.
There are multiple HTML tables, each generated by a different ASP.NET web control. Each table can contain overlapping field names, which is causing a problem with my JQuery click event handlers. The click event handler is linking to unintended form fields in addition to the intended form field.
I have provided a simplified sample version of the code below. This code is trying to set the value of textbox box1 when a particular radiobutton is selected in the table with id=thing1. Obviously, the jquery code will be triggered for the form fields in both tables.
The tables are dynamically added to the webpage based upon different conditions. It is possible that no tables will be loaded, only 1 table, or both tables might load. In the future, other tables could be added. Each table comes from a different .net web control.
Other than renaming the form fields to make sure they are unique across all user controls, is there a way to have JQuery act only on the intended form fields? In other words, could the table ID be incorporated into the JQuery code in a manner that does not become a nightmare to maintain later?
Is there a way to force a non-secure form post to be secure? I understand there are ways to automatically resolve an http URL as an https URL but with form posts, is this type of redirection too late? Will the posted data have already gone through the wire as plain text?
When the users presses submit, I get the below error and for the life of me cannot figure out why! I have tried GET as well, byt that just seems to post to itself and just puts the form vairables in the URL rather than going to formprocess.aspx.page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.Please try the following:Contact the Web site administrator if you believe that this request should be allowed.Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.HTTP Error 405 - The HTTP verb used to access this page is not allowed.Internet Information Services (IIS)
I got a asp: label (hidden by css) to which I store something.
I could not use a hiddenfield since you cannot set a css class on it. I need a css class so I can select it in jQuery. I cannot select by Id since asp.net webforms change your id. I cannot use xxxxx.ClientId, since my jQuery script isn't on that form (oh oh, i miss my mvc)
Anyhow, I pop up a dialog, let the user type sth in. When the dialog closes, I set that label to whatever the use typed in the dialog. That work (I'm testing for now using some alerts) but when I add a button, and in it's click event check the value of taht label, it is still what it originally have been though.
Here is the content of my usercontrol (at run time add as many as needed of them to my view):
Code: // Brings up a jQuery UI Dialog containing a textarea to which the user can enter a dispute // Upon close, place that reason in the hidden input we keep for each date. function GetDisputeReason(parent) { var disputeReasonElement = $('.disputeReason', parent); var existingDispute = disputeReasonElement.val(); var win = $('<div><p>Enter your reason for dispute:</p></div>'); var userInput = $('<textarea style="width:100%">' + existingDispute + '
I have a few scattered <p> elements on the aspx page which I am grouping together using a class like so - <p class="instructions" runat="server">
In my code behind, using C# I want to hide these elements, using something like instructions.Visible = false;
However I realize I can only do this in codebehind if I use ID but this will result in invalid HTML/CSS Selector since you can't have multiple ID's with the same ID name...
Alternatively is there another way to group the controls if not by class?
EDIT: I can't use JavaScript, so the selection must be done in C# codebehind/ASP.NET
I am trying to auto fill city and state value after user typing 5-digit zip code. The Ajax part works perfectly, the problem is I have two sets of zip/city/state fields in one web page. I searched this issue for quite a while, using next(),nextAll() even slice(), none of them work in my situation.
Web page related part:
[Code]....
After using Ajax function I get returned value for city and state. For each city textbox I give a "city" class, for each state dropdownlist I give a "state" class. I wonder how can I put those value into right position?
To demonstrate that I could even use a Class attribute on an option elem I tried adding class attributes to options of a select elem in a static page and that works fine. I noticed that not many online resouces documented this so I figured I would explicitly set the record.
here is the jquery code attempting to add a class to the selected option
[Code]....
New information, I found the reason nothing occured was a simple mistake in the value being passed in for compLev. However, now it runs through the code for the correct case and does nothing to the color of the item.
I have a web form with usual elements (first name, last name, etc). The Postback URL is a different website altogether as the form is intented to post lead information to another website.
The site that accepts the lead is expecting First Name to come over as "FName", and Last Name to come over as "LName". Is there any way I can set the ID of a textbox to "txtFName", but submit it over the wire as "FName"? I tried changing the name attribute, but at runtime it sets the name = id.