[英]Form Post Values using plain html controls in ASP.NET web forms
我有一个简单的表单,有一些简单的html输入,如使用ASP.NET Web Forms(不是MVC)的bellow
<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>
当我回发到服务器时,文本框的值不包含在Request.Form元素中。 有什么理由让我失踪。 我不愿意使用asp.net控件,因为该页面后来需要相当数量的javascript来更改ui和其他东西。
我知道我可以轻松地使用MVC做到这一点,但不幸的是,此时的更改不是一个选项。
干杯科林G.
为输入提供id和name,看看是否无法解决问题。
<input id="SchoolDetails_SchoolName"
name="SchoolDetails_SchoolName"
type="text"
value="<%= ViewModel.School.Name %>" />
id属性仅标识DOM中的标记。 name属性允许将标记作为表单的一部分发回。 ASP.NET控件或具有runat=server
的HTML元素会自动获取分配的名称和标识属性。
HTML元素不是ASP.NET生命周期的一部分。 一种简单的方法是将runat =“server”属性添加到INPUT元素中。
@Colin使用ClientIDMode="Static"
属性,即使您在元素上有runat =“server”,服务器端元素名称在客户端也将保持不变。 希望这可以帮助
@tvanfosson干杯按我的意愿工作。
@Bullins我真的不想使用runat =“server”,因为它导致控件的ID最终像ctl00_ContentPlaceHolder1_ctl00_SchoolDetails_Address_Postcode一样,这使得我很难实现我想要的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.