簡體   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