Bootstrap 4模态框内Asp.Net表单元素提交不回传问题
问题诊断与解决思路
这个问题其实是ASP.NET表单提交的经典入门坑——你的所有输入控件(包括隐藏域、文本框、文本域)只设置了id属性,却缺少name属性。ASP.NET在处理表单回发时,完全依赖控件的name属性来识别并收集提交的值,没有name的字段根本不会被包含到Request.Form集合里。
解决方案1:给原生HTML控件添加name属性
直接给每个需要提交的输入元素补上name属性(建议和id保持一致,方便对应),修改后的模态框核心代码如下:
<div class="modal-body p-4" id="result"> <input type="hidden" id="hidmsgreply" name="hidmsgreply" /> <input type="hidden" id="hiddests" name="hiddests" /> <input type="hidden" id="hidtemp" name="hidtemp" /> <div class="row"> <div class="col-md-2"> <label for="txtoggetto" class="text-teal-600">Subject</label> </div> <div class="col-md-10 pb-1"> <input type="text" id="txtSubj" name="txtSubj" class="form-control"> </div> </div> <div class="row"> <div class="col-md-12 mb-2"> <textarea id="txtEditor" name="txtEditor"> </textarea> </div> <div class="col-md-12"> <span id="spanAutoSave"></span> </div> </div> </div>
解决方案2:改用ASP.NET服务器控件(更省心)
如果你用ASP.NET的服务器控件代替原生HTML输入,它会自动生成符合规范的name和id属性,还能直接在后台通过控件ID访问值,不需要手动操作Request.Form:
<div class="modal-body p-4" id="result"> <asp:HiddenField ID="hidmsgreply" runat="server" /> <asp:HiddenField ID="hiddests" runat="server" /> <asp:HiddenField ID="hidtemp" runat="server" /> <div class="row"> <div class="col-md-2"> <label for="txtoggetto" class="text-teal-600">Subject</label> </div> <div class="col-md-10 pb-1"> <asp:TextBox ID="txtSubj" runat="server" CssClass="form-control"></asp:TextBox> </div> </div> <div class="row"> <div class="col-md-12 mb-2"> <asp:TextBox ID="txtEditor" runat="server" TextMode="MultiLine" CssClass="form-control"></asp:TextBox> </div> <div class="col-md-12"> <span id="spanAutoSave"></span> </div> </div> </div>
后台代码可以直接写:
string subject = txtSubj.Text; string content = txtEditor.Text;
为什么提交按钮会出现在AllKeys里?
因为你用的是<asp:Button>服务器控件,ASP.NET会自动给它生成包含命名容器的name属性(比如你看到的ctl00$ContentPlaceHolder1$btnsend),所以提交时这个按钮的信息会被包含到Request.Form中。而原生控件没有name,自然不会被识别。
验证步骤
- 按照上面的方法修改控件属性
- 重新编译运行页面
- 提交表单后查看
Request.Form.AllKeys,就能看到你定义的字段名了 - 此时
Request.Form["txtSubj"]或者服务器控件的Text属性就能正常获取到值
内容的提问来源于stack exchange,提问作者Edika
相关产品推荐
相关产品推荐

