I have a simple form with some plain html input like bellow using ASP.NET Web Forms (not MVC)
<table id='tbl_SchoolDetails'> <tbody id='tbody_SchoolDetails'> <tr> <td> School Name </td> <td> <input id='SchoolDetails_SchoolName' type='text' value='<%= ViewModel.School.Name %>' /> </td> </tr> <tr> <td> Head Teacher </td> <td> <input id='SchoolDetails_HeadTeacher_Name' type='text' value='<%= ViewModel.School.HeadTeacher.Name %>' /> </td> </tr> <tr> <td> Head Teacher Email </td> <td> <input id='SchoolDetails_HeadTeacher_Email' type='text' value='<%= ViewModel.School.HeadTeacher.Email %>' /> </td> </tr> <tr> <td> Regent/Placement Contact </td> <td> <input id='SchoolDetails_Regent_Name' type='text' value='<%= ViewModel.School.Regent.Name %>' /> </td> </tr> </tbody> </table>
When I do a post back to the server the values of the text boxes are not contained in the Request.Form element. Is there some reason for this that I am missing. I am reluctant to use asp.net controls as the page is later going to require a fair amount of javascript for changing the ui and other stuff.
I know I could easily do this with MVC but unfortunatly a change to this is not an option at this time.
Cheers Colin G
Give the input both an id and a name and see if that doesn’t solve your problem.
The id property only identifies the tag within the DOM. The name property allows the tag to be posted back as part of a form. An ASP.NET control, or an HTML element with
runat=server, automatically gets both the name and id properties assigned.