ASP.NET中无法获取Summernote值:隐藏字段后台返回空字符串
解决Summernote内容赋值到隐藏字段后端为空的问题
问题原因
你给ASP.NET HiddenField赋值时用了innerText属性,但HiddenField是通过value属性传递提交数据的,innerText的内容不会被包含在表单提交参数里,导致后端获取到空字符串。
修复后的JavaScript代码
把赋值语句从设置innerText改为设置value:
$("#<%= txtQuestion.ClientID %>").on('summernote.blur', function () { debugger; let a = $('#<%= txtQuestion.ClientID %>').summernote('code'); // 用value属性赋值,而非innerText document.getElementById("<%= HiddenField1.ClientID %>").value = a; console.log(a); });
或者用jQuery更简洁的写法:
$("#<%= txtQuestion.ClientID %>").on('summernote.blur', function () { debugger; let a = $(this).summernote('code'); $("#<%= HiddenField1.ClientID %>").val(a); console.log(a); });
额外优化:避免用户未触发blur直接提交的情况
如果用户没触发编辑器的blur事件就直接提交表单,隐藏字段还是会为空。可以添加表单提交时的赋值逻辑:
$("form").submit(function() { let content = $('#<%= txtQuestion.ClientID %>').summernote('code'); $("#<%= HiddenField1.ClientID %>").val(content); });
后端代码无需修改
string a = HiddenField1.Value;
内容的提问来源于stack exchange,提问作者Vishakh Shetty
相关产品推荐
相关产品推荐

