簡體   English   中英

如果綁定的 Textarea 包含 HTML 代碼,則會截斷 Blazor WASM 中的值

[英]Binded Textarea truncates value in Blazor WASM if it contains HTML code

我正在使用 .NET 6 和 Blazor WASM。 當我粘貼到 textarea 普通文本時,無論多長或多短,它都可以正常工作並顯示在變量中。 但是,如果我從網站(例如本網站或任何其他網站)粘貼 HTML 源代碼,如果它超過數千個字符,它似乎會從中間截斷它。 它從頭到尾占用了 X 個字符,中間有 截斷的字符串通常約為 1000-1200 個字符。

我嘗試使用 vanilla js 從 textarea-element 中提取值並且它工作得很好。

注意,這在 2-3 個月前確實有效。 我只是突然注意到它停止工作了,我已經部署了與此類似的代碼。 但在不同的文件上。 我沒有手動更新框架或編輯器中的任何內容 (Visual Studio 2022)

所以我有這樣的簡單代碼:

<form>
    <label for="pasteHtml">Paste HTML code here</label>
    <textarea @bind="pastedHtml" id="pasteHtml" rows="3"></textarea>
</form>
<button @onclick="ParseHtml"> Parse HTML</button>
@code {
    // This is where I have the problem, pastedHtml value is truncated if it contains HTML code..
    private string pastedHtml= "";

    private void ParseHtml()
    {
        // Code... etc

我沒有發現 textarea 和 InputTextArea 有任何問題。

輸入文本區域示例:

@page "/test"

<EditForm EditContext="@_editContext" OnValidSubmit="HandleOnValidSubmit">

    <div class="form-group row m-3">
        <label class="col-md-2 col-form-label">Html Code:</label>
        <div class="col-md-10">
            <InputTextArea class="form-control" @bind-Value="sampleCode.HtmlCode" />
        </div>
    </div>

    <div class="row m-3">
        <div class="col-md-12 text-right">
            <button type="submit" class="btn btn-success float-right">Submit</button>
        </div>
    </div>
</EditForm>

<div class="row m-3">
    <div class="col-md-12 text-right">
        HTML code length: @length
    </div>
</div>

@code {
    private int length;
    private SampleCode sampleCode = new SampleCode();
    private EditContext _editContext;

    protected override void OnInitialized()
    {
        _editContext = new EditContext(sampleCode);
        base.OnInitialized();
    }

    public void HandleOnValidSubmit()
    {
        this.length = sampleCode.HtmlCode.Length;
        Console.WriteLine($"HTML code length: {sampleCode.HtmlCode.Length}");
    }

    public class SampleCode
    {
        public string HtmlCode { get; set; }
    }
}

InputTextArea 示例輸出

文本區域示例:

@page "/test"

<div class="form-group row mb-3">
    <label class="col-md-2 col-form-label">Html Code:</label>
    <div class="col-md-10">
        <textarea class="form-control" rows="3" @oninput="OnInput"></textarea>
    </div>
</div>

<div>HTML code length: @length</div>

@code {
    private int length;

    void OnInput(ChangeEventArgs args)
    {
        this.length = args.Value.ToString().Length;
    }
}

文本區域示例輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM