Настройка фокуса на EditorFor [duplicate]

Вы объявили «список» как «свойство уровня класса», а не «свойство уровня экземпляра». Чтобы иметь свойства, определенные на уровне экземпляра, вам необходимо инициализировать их путем ссылки с параметром «self» в методе __init__ (или в другом месте в зависимости от ситуации).

Вы не строго нужно инициализировать свойства экземпляра в методе __init__, но это упрощает понимание.

7
задан Tieson T. 23 August 2015 в 17:18
поделиться

4 ответа

Это потому, что вы используете EditorFor вместо чего-то определенного, например TextBoxFor.

@Html.TextBoxFor(model => model.Name, new { htmlAttributes = new { 
                    @class = "form-control" }, autofocus="autofocus"})

Или вы можете сделать это с помощью jQuery:

<div class="editor-field focus">
    @Html.EditorFor(model => model.Description)
    @Html.ValidationMessageFor(model => model.Description)
</div> 
$(function() {
    $('.focus :input').focus();
});

Update: Как вы знаете, TextBoxFor всегда создает текстовое поле с типом ввода, но EditorFor является немного умный, он отображает разметку на основе типа данных свойства.

9
ответ дан Sirwan Afifi 24 August 2018 в 03:36
поделиться

Я следил за этой нитью, и я, возможно, наткнулся на ответ на ваш вопрос об автофокусировке на EditorFor - это все Asp.Net 4.5 и MVC 5, но это не важно.

  1. В папке Scripts у меня есть файл сценария jQuery: $ (function () {$ ('. someclassname'). focus ();});

Я добавляю имя скрипта к BundleConfig и отобразить его в представлении.

  1. В представлении я добавляю имя класса в EditorFor <div class="col-md-10" someclassname">
  2. Затем добавляю type="text" autofocus="autofocus" в редактор EditorFor @класс. Итак, new{@class="form-control", type="text", autofocus="autofocus"
  3. Это в значительной степени, когда DOM загружает поле .someclassname, получает курсорный фокус ... PS. Фактически, если вы просто выполняете (3), это также работает ...
1
ответ дан Eric Chow 24 August 2018 в 03:36
поделиться

Используя .NET Framework 4.5 и MVC 5, это работает для меня:

@Html.EditorFor(model => model.Description, new {
    htmlAttributes = new {
        @class = "form-control",
        autofocus = true
    }
})
3
ответ дан Patrick 24 August 2018 в 03:36
поделиться

Вы помещаете атрибут автофокуса в неправильное место.

@Html.EditorFor(model => model.Description, 
     new { htmlAttributes = new { @class = "form-control" }, autofocus = "" })

Попробуйте это вместо:

@Html.EditorFor(model => model.Description, 
     new { htmlAttributes = new { @class = "form-control", autofocus = "" } })
3
ответ дан Steve M 24 August 2018 в 03:36
поделиться
Другие вопросы по тегам:

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