Я могу получить контент Delta Quill, но я не могу передать его через ijsruntime.invokevoidasyncC#

Место общения программистов C#
Ответить
Anonymous
 Я могу получить контент Delta Quill, но я не могу передать его через ijsruntime.invokevoidasync

Сообщение Anonymous »

Я могу видеть точный объект Delta через console.log () < /code>, но я не могу преобразовать данные его объекта в строку. Редактор с данными форматирования, представленным
delta объектом. < /p>
Методы < /strong> < /p>

Код: Выделить всё

getContents(index: number = 0, length: number = remaining): Delta
Примеры [/b]

Код: Выделить всё

const delta = quill.getContents();


Следовательно, в моем веб -приложении Blazor мне нужно было использовать ijsruntime.invokevoidasync , чтобы получить объект Delta, который я должен был преобразовать в строку, используя json.stringify () сначала. Вот мой соответствующий фрагмент кода: < /p>

Код: Выделить всё

window.getContentsQuill = function () {
if (window.quillEditor) {
const delta = window.quillEditor.getContents();
console.log(delta);
return JSON.stringify(delta);
} else {
console.warn("Quill editor not initialized.");
return null;
}
};
< /code>

на странице Razor: < /p>
@inject IJSRuntime JS

@*Client-side code here*@

@code {
private async Task GetDeltaObject()
{
string? modifiedContent = await JS.InvokeAsync("getContentsQuill");
Console.WriteLine(modifiedContent);
}
}
Если я запустил свой проект, а затем запустил метод getDeltaObject () , он на мгновение ничего не делал. Примерно через 30 секунд я получил эти журналы: < /p>

Код: Выделить всё

warn: Microsoft.AspNetCore.Components.Server.Circuits.RemoteRenderer[100]
Unhandled exception rendering component: A task was canceled.
System.Threading.Tasks.TaskCanceledException: A task was canceled.
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)
at BlazorBootstrap.AutoComplete`1.DisposeAsyncCore(Boolean disposing)
at BlazorBootstrap.BlazorBootstrapComponentBase.DisposeAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.g__GetHandledAsynchronousDisposalErrorsTask|87_0(Task result)
fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]
Unhandled exception in circuit 'B_gf7YPeslmHNL-uNQ0u_OQ_7f_CFOcPvkwJAn1XFLo'.
System.Threading.Tasks.TaskCanceledException: A task was canceled.
at Microsoft.JSInterop.JSRuntime.InvokeAsync[TValue](Int64 targetInstanceId, String identifier, Object[] args)
at Microsoft.JSInterop.JSRuntimeExtensions.InvokeVoidAsync(IJSRuntime jsRuntime, String identifier, Object[] args)
at BlazorBootstrap.AutoComplete`1.DisposeAsyncCore(Boolean disposing)
at BlazorBootstrap.BlazorBootstrapComponentBase.DisposeAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.g__GetHandledAsynchronousDisposalErrorsTask|87_0(Task result)
Однако, согласно ответу в этой теме (blazor.net: что вызывает «задача была отменена» в JavaScript), кажется, что проблема в том, что я превышаю ограничение SignalReceiVemessAgesize . Это разумно, так как объект Delta может быть большим и содержать форматированный текст и изображения: < /p>
delta object < /h4>
{
"ops": [
{
"attributes": {
"font": "roboto"
},
"insert": "This is a sample full description with a list of images. - Roboto"
},
{
"insert": "\nThis is a sample full description with a list of images. - Open Sans\n"
},
{
"attributes": {
"font": "lato"
},
"insert": "This is a sample full description with a list of images. - Lato"
},
{
"insert": "\n"
},
{
"attributes": {
"font": "montserrat"
},
"insert": "This is a sample full description with a list of images. - Montserrat"
},
{
"insert": "\nThis is a sample full description with a list of images. - Roboto Condensed\n"
},
{
"attributes": {
"font": "oswald"
},
"insert": "This is a sample full description with a list of images. - Oswald"
},
{
"insert": "\n"
},
{
"attributes": {
"font": "poppins"
},
"insert": "This is a sample full description with a list of images. - Poppins"
},
{
"insert": "\nThis is a sample full description with a list of images. - Slabo 27px\nThis is a sample full description with a list of images. - NotoSans\nThis is a sample full description with a list of images. - Roboto Mono\n"
},
{
"attributes": {
"font": "merriweather"
},
"insert": "This is a sample full description with a list of images. - Merriweather"
},
{
"insert": "\n\n"
},
{
"insert": {
"image": "data:image/png;base64,{image-data}"
}
},
{
"insert": "\n\n"
},
{
"insert": {
"image": "data:image/png;base64,{image-data}"
}
},
{
"insert": "\n\n"
},
{
"insert": {
"image": "data:image/png;base64,{image-data}"
}
},
{
"insert": "\n"
}
]
}
< /code>
Вот журнал консоли Devtools ': < /p>
< /p>

больше, в зависимости от asp.net core.net core.net core.net .net .net .net ore.net .net .net op.net .net .net .net .net asp.net .net .net .net .net .net .net .NEP.NEP.NEP. documentation:



Option
Default Value
Description




MaximumReceiveMesseSize < /td>
32 кб < /td>
максимальный размер одного входящего хаба сообщения. Увеличение значения может увеличить риск отказа в атаках обслуживания (DOS).>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-through
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»