繁体   English   中英

使用ASP.NET Web表单中的普通html控件表单发布值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM