MVC - Posting A Form With Custom Fields Of Different Data Types?
Dec 10, 2010
In my ASP.NET MVC 2 web application, I allow users to create custom input fields of different data types to extend our basic input form. While tricky, building the input form from a collection of custom fields is straight-forward enough.However, I'm now to the point where I want to handle the posting of this form and I'm not certain what the best way to handle this would be. Normally, we'd use strongly-typed input models that get bound from the various statically-typed inputs available on the form. However, I'm at a loss for how to do this with a variable number of input fields that represent different data types.A representative input form might look something like:
My date field: [ date time input
control ]
My text field: [ text input
field ]
My file field: [ file upload
control ]
My number field: [ numerical input control ]
My text field 2: [text input field ]
etc...
Ideas I've thought about are:Sending everything as strings (except for the file inputs, which would need to be handled specially).Using a model with an "object" property and attempting to bind to that (if this is even possible).Sending a json request to my controller with the data encoded properly and attempting to parse that.Manually processing the form collection in my controller post action - certainly an option, but I'd love to avoid this.Has anyone tackled an issue like this before? If so, how did you solve it?Update:My "base" form is handled on another input area all together, so a solution doesn't need to account for any sort of inheritence magic for this. I'm just interested in handling the custom fields on this interface, not my "base" ones.Update 2:Thank you to ARM and smartcaveman; both of you provided good guidance for how this could be done. I will update this question with my final solution once its been implemented.
I have a problem posting xml Data using HttpWebRequest..
The server returns Internal error..
I want to simulate a simple Form with Method=Post. The form have three fields. Two for credentials and the third one for Posting XML. Here is the sample HTML which i want to simulate using HttpWebRequest..
I have a some problem while Posting xml data Using HttpWebRequest. Actually I want to Post 3 Form variables
2 of them are for credential and the third one is for XML data to an api, The api will authenticate and will process the xml data, and will return success if no error found.
Here is what there documentation says.
The data will be passed to the gateway via an HTTPS FORM post and a string value of "success" will be returned upon successful receipt of the data. Three total FORM variables will be posted, two of which will contain credentials, and the third will contain the HR-XML data. A string value of "error" will be returned if the posting fails for any reason.
Form Fields integration_field1 = 1234, integration_field2=2345pwd, hrxml=form field containing the HR-XML order (string)
I have an application that needs to post data to a url on the web and then receive an xml response. I have an HTML form (provided by vendor) that posts the data correctly, however when clicking the submit button the page is redirected to the post url and the xml is displayed in the browser. I need to do this on a postback within an existing asp.net project. Basically, the user will fill out the form, the form data will post to the url, the xml response will be received, and the appropriate values will be displayed on the screen. I've found a bunch of examples for doing this but I just can't seem to get my head around it. Can anyone point me in the right direction or explain how I should go about this?
I have view that dynamically adds multiple partial views with a foreach statement with the standard <%Html.RenderPartial("partialName", model); %> . The partial view control has just a label and textbox control. When I view the source html generated it correctly has a single form control around all the multiple labels and textboxes. My single submit button, inside the form though does not send any of the form data back to the controller though when using FormCollection.
I am posting data to an external website server side. This works when the data parameter is less than about 640 characters. The data gets truncated beyond around 640 characters. The code I'm using is below:
Function PostData(TransId As String, QuoteNumber As String, data As String) As String Dim url As String = "http://localhost:49608/test2.aspx" Dim encoding As New ASCIIEncoding() Dim request As WebRequest = WebRequest.Create(url) request.Method = "POST" Dim postData As String = "WAA_PACKAGE=Vendor&WAA_FORM=blahblaj&WAA_HTML3CLASS=nHTML&VendorID=ENG3135&"
I can't seem to find anything on how to edit the data editor settings before umbraco 6.2 (Juno). Is there any simple way, it must be possible. If you don't understand what i mean i want to do the same as [URL]
I am using hidden fields to save some preset data, but upon postback they appear to disappear.
Here's what my controller actions look like:
[Code]....
The view is coded like this:
[Code]....
But when the POST action receives the object back, some of the fields have become null. The FormCollection, however, contains all values. I realize I could just take everything from the formcollection but it's probably better practice to use the object, right?
I have a relatively complex dataset (numerous tables, some with multiple records) generated from reading in an XML file. I need to connect said dataset fields to an ASP form. At the moment I'm assigning them manually, like so in the pageload:
I did some looking into binding the textboxes (and dropdownlists, and checkboxes, and and and...) directly, but it seemed to be too many formats to use.
So this works fine, but as the number of fields increases, those load and unload lists are going to get unwieldy.
i have a web for and want to 'get' it to another page.. is there anyway to submit it without posting the viewstate and other bits i dont want? or should i be catching the submit button click and redirecting with a querystring i build myself
This is the basic question , but I am not sure how the HTML data is handled when submitted through any registration form.
Consider I am having a Registration form where I am entering new customer. And while entring the details of customer I have put some HTML data into the textboxes(simple textboxes ) provided for. Show should I handle this.
Action method takes as id parameter and returns 2 lists (eg. List<object1> and List<object2>) of objects back to the view. In order to achieve this, the viewmodel is created as below;
just starting strongly typed data sets, I have managed to fill my data set and bind the gridview, but now I dont understand where to map the fields ? Inside the business logic layer or presentation layer.
working example to map fields with a select query and with an update .
I have a form and its code as above there are many columns and I want to do one thing that when user enter all the values in the form and upon pressing submit button all the data were show on the form..
E.g. here is the structure. I have the following fields in my form
Start Date................
End Date.................
Promo Type................
Service..........................
Submit Button
When I press submit button all of the data which i enter above was shown below.
Any method for this I don't want to use grid over here...
I have a page with two forms on it. The first form is a "Search" form and does not have the runat="server" attribute. It is merely meant to post some search criteria to another page on the site. The second form is the standard "aspnetForm". Inside that form I have a ModalPopupExtender... Within the ModalPopupExtender there are two buttons that should postback to the server when they are clicked by the user. My problem is that when the buttons are clicked the page posts back to the "Search" form... The only clue I have is that if I move the form to the bottom of the page (after my ModalPopupExtender), everything works fine. It seems that the extender uses the first form it can find on the page. Is there anyway to force it to postback to the correct form?
I have a user control I am adding dynamically. It has a link button and a text area on it. The containing div is hidden via style sheet (client side), and I use some jquery to pop it up in a modal. It is getting added in the init and the button click event is firing on the server. BUT the textareas value is not being set. On further inspection the field value is not even being sent in the form POST data. why the value is not being sent. The rest of the form values are being sent with no problems.
this page I will be calling from a variety of pages. Is there some way of knowing from which page my form was submitted? I was thinking something along the lines of writing:
I am populating data into formfields when i select checkbox in a grid view with the following code.I have 20 record set in database,Quotenumber(Main column) starts 3001 ,3002,3003..........3020.I am allowing duplicate entries meant that i have 4 recordset only on 3000 quotenumber like wise i may have 3or more record set on 3010,problem here is when i select first one of 3000(Quotenumber) it is supposed to populate the record set of first one of 3000 but only last one of 3000(quotenumber) is getting populated into form field.Can any one provide solution to this.
Code for Populating Data into formfield when you select checkbox ina grid view.
Dim indx As Integer Dim connectionString As String = "Database=xxxx;" & "Data Source=localhost;" & "User Id=root;Password=xxxx" Dim query As String = "SELECT QuoteNumber,Revision,Vendor,PartNumber FROM quotes order by QuoteNumber" Dim connection As New MySqlConnection(connectionString) Dim da As New MySqlDataAdapter(query, connection) Dim ds As New DataSet() Dim myAdapter As New MySqlDataAdapter myAdapter = New MySqlDataAdapter(query, connection) myAdapter.Fill(ds, "QUOTES") Dim dt As DataTable = New DataTable() 'DataTable Initializes a new instance of the DataTable class with no arguments. da.Fill(dt) Dim checkbox As CheckBox = CType(sender, CheckBox) checkbox.Checked = True Dim row As GridViewRow = CType(checkbox.NamingContainer, GridViewRow) Dim i As Integer For i = 0 To dt.Rows.Count - 1 Step i + 1 If (dt.Rows(i)("QuoteNumber").ToString = row.Cells(1).Text.ToString()) Then indx = i End If Next DDQuote.Text = dt.Rows(indx)("QuoteNumber").ToString() txtRev.Text = dt.Rows(indx)("Revision").ToString() DDVend.Text = dt.Rows(indx)("Vendor").ToString() txtPart.Text = dt.Rows(indx)("PartNumber").ToString()
I have one issue on my localhost running website that is when i submit data from asp.net form . it don't clear the data permanentaly from the page history.like , i submit one record and after this one i double click on the textfields the previous values are shown ?