是否可以从asp.net web表单中的Summernote编辑器中获取值



我使用的是summernote编辑器,我想在代码后面检索它的内容。我尝试使用以下方法,但它返回空(null)

1-

default.aspx

<div class="summernote"  id="txtTest" runat="server"></div>

代码背后:

string content= txtTest.InnerText;

2-

default.aspx

<div class="summernote"  id="txtTest" ></div>

代码背后:

string name = Request.Form["txtTest"];

有什么建议吗?

这是我的代码完美工作

<div class="form-group">
    <asp:Label ID="lblSummernote" runat="server" Text="Image" AssociatedControlID="txtSummernote" CssClass="control-label col-md-3"></asp:Label>
        <div class="col-md-8">
            <asp:TextBox ID="txtSummernote" runat="server" TextMode="MultiLine" Rows="2"></asp:TextBox>
            <asp:Label ID="lblSum" runat="server" Text="Summernote"></asp:Label>
      </div>
 </div>

JavaScript

<script src="/Content/SummerNote/summernote.js"></script>
    <script>
        $(function () {
            // Set up your summernote instance
            $("#<%= txtSummernote.ClientID %>").summernote();
            focus: true
            // When the summernote instance loses focus, update the content of your <textarea>
            $("#<%= txtSummernote.ClientID %>").on('summernote.blur', function () {
                $('#<%= txtSummernote.ClientID %>').html($('#<%= txtSummernote.ClientID %>').summernote('code'));
           });
        });
    </script>
    <script type="text/javascript">
        function funcMyHtml() {
            debugger;
            document.getElementById("#<%= txtSummernote.ClientID %>").value = $('#<%= txtSummernote.ClientID %>').summernote('code');
        }
    </script>

后面的C#代码

 protected void btnSubmit_Click(object sender, EventArgs e)
        {
            lblSum.Text = txtSummernote.Text;
        }

您是否考虑过使用<textarea>而不是<div>来处理此问题?通常,它们在存储值方面更容易使用(因为它们是为这样做而设计的):

<textarea id="txtTest" runat="server"></textarea>

处理此问题的方法之一是使用Summernote的可用API注册事件,以便在焦点丢失时为<textarea>元素设置HTML内容(例如onblur):

<script>
    $(function () {
        // Set up your summernote instance
        $("#txtTest").summernote();
        // When the summernote instance loses focus, update the content of your <textarea>
        $("#txtTest").on('summernote.blur', function () {
            $('#txtTest').html($('#txtTest').summernote('code'));
        });
    });
</script>

由于您可能要在元素中存储HTML内容,因此您可能需要确保.NET不会认为您试图利用它。您可以通过更新页面的ValidateRequest属性来显式设置此页面以忽略该过程:

<%@ Page ... ValidateRequest = "false" %> 

或者,您可以尝试简单地转义正在设置的内容:

$('#txtTest').html(escape($('#txtTest').summernote('code')));

以下是我如何让它工作的。将其引用为类class="summernote"

    $(document).ready(function () {
        $('.summernote').summernote();
    });

最新更新