Это то, как вы правильно кодируете html textarea в csharp - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь добавить функцию для кодирования текстовой области в мой оператор переключения Case, а также декодировать ее при отправке. Я подошел так же близко, как этот код ниже, но функциональная часть кодирования, похоже, была написана неправильно, согласно Visual Studio. Любая помощь будет принята с благодарностью!

Кодирование части кода -

case FieldType.EncodedTextarea:
        string encodedtextareaDefaultValue = this.Model.DefaultValue;
        if (!string.IsNullOrWhiteSpace(this.Model.FieldValue))
        {
            encodedtextareaDefaultValue = this.Model.FieldValue;
        }

        <textarea id="@this.Model.FieldKey" name="@this.Model.FieldKey" class="form-control hidden-print encoded" @Html.Raw(validationAttributes)
                  placeholder="@this.Model.PromptText" rows="5">@encodedtextareaDefaultValue</textarea>
        <span class="print-view">
            @encodedtextareaDefaultValue
        </span>

        <script type="text/javascript">
        function htmlEncode(str) {
        return string encoded = str.Replace('&', '&amp;').Replace(''<'', '&lt;').Replace(''>'', ''&gt;'').Replace('\', '&quot;'').Replace('''', '&apos;');
        }
        </script>
        break;

Декодирование части кода -

$.each($('#recordForm input:not(:radio, :checkbox), #recordForm select, #recordForm textarea, .k-file-name'), function (i, v) {
            if (v.type !== 'submit') {
                if ($(v).hasClass('k-file-name')) {
                    data['FileName'] = $(v).text();
                }
                if(v.hasClass('encoded')){
                    data[v.name] = String(v.value).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&apos;');
                }
                data[v.name] = v.value;
            }
        }); //end each

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете использовать встроенные методы, такие как htmlencode и htmldecode, которые доступны в утилите http.

Когда вы отправляете текстовое поле, проверьте, пусто оно или нет. Если он не пустой, отправьте данные для функции отправки и выполните кодирование HTML. При получении данных используйте HTML decode. См. Ссылку ниже. https://docs.microsoft.com/en-us/dotnet/api/system.web.httputility.htmlencode?view=netcore-3.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...