TypeError: Невозможно прочитать свойство 'setState' из неопределенного, даже после всей надлежащей привязки для WebRTC и React

UPDATE: теперь очень просто добавить атрибуты html в шаблоны редактора по умолчанию. Вместо этого вы делаете это:

@Html.TextBoxFor(m => m.userCode, new { @readonly="readonly" })

вы можете это сделать:

@Html.EditorFor(m => m.userCode, new { htmlAttributes = new { @readonly="readonly" } })

Преимущества: вам не нужно называть .TextBoxFor и т. Д. Для шаблонов. Просто позвоните .EditorFor.


Хотя решение @ Shark работает правильно, и оно простое и полезное, мое решение (которое я всегда использую) - это создать файл editor-template, который может обрабатывать readonly:

  1. Создайте папку с именем EditorTemplates в ~/Views/Shared/
  2. Создайте бритву PartialView с именем String.cshtml
  3. Заполните String.cshtml с этим кодом:
    @if(ViewData.ModelMetadata.IsReadOnly) {
        @Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue,
            new { @class = "text-box single-line readonly", @readonly = "readonly", disabled = "disabled" })                                     
    } else {
        @Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue,
            new { @class = "text-box single-line" }) 
    }
    
  4. В классе модели поместите атрибут [ReadOnly(true)] в свойствах, которые вы хотите readonly.

, например

public class Model {
    // [your-annotations-here]
    public string EditablePropertyExample { get; set; }

    // [your-annotations-here]
    [ReadOnly(true)]
    public string ReadOnlyPropertyExample { get; set; }
}

Теперь вы можете просто использовать синтаксис по умолчанию бритвы:

@Html.EditorFor(m => m.EditablePropertyExample)
@Html.EditorFor(m => m.ReadOnlyPropertyExample)

Первый, отображает нормальный text-box следующим образом:

<input class="text-box single-line" id="field-id" name="field-name" />

, а второй будет отображаться;

<input readonly="readonly" disabled="disabled" class="text-box single-line readonly" id="field-id" name="field-name" />

Вы можете использовать это решение для любого типа данных (DateTime, DateTimeOffset , DataType.Text, DataType.MultilineText и т. д.). Просто создайте editor-template.

0
задан Keith Wallace 20 March 2019 в 05:18
поделиться

1 ответ

Эти методы не имеют привязки бина на вашем контроллере, и вы вызываете их из других методов, это может быть причиной! hideAuth() full()

0
ответ дан Jean Rauwers 20 March 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: