Добавьте дополнительные поля в профиль участника Umbraco

Я разрабатываю сайт с использованием Umbraco 7, где на домашней странице есть форма регистрации с несколькими полями. Я создал частичное представление, используя шаблон регистрации участника, и вызываю частичное представление на моей домашней странице. Все работает нормально, но мне нужно добавить в форму несколько дополнительных полей (например, фамилия, номер телефона, адрес и т. д.). Есть ли способ изменить существующую модель профиля участника, чтобы добавить эти поля? Я новичок в Umbraco, поэтому любая помощь будет оценена по достоинству.


person user1482852    schedule 16.03.2017    source источник
comment
Возможный дубликат Расширить элемент umbraco со свойством   -  person Jannik Anker    schedule 16.03.2017
comment
Я не прошу добавлять свойства. Я хочу добавить дополнительное поле вместе с полем «Имя», «Электронная почта» и «Пароль» по умолчанию в профиле.   -  person user1482852    schedule 16.03.2017
comment
Разве свойства и поле не одно и то же?   -  person Eyescream    schedule 16.03.2017
comment
для обоих существуют разные таблицы. Поля по умолчанию, которые уже определены в профиле, сохраняются в таблице cmsMember, а дополнительные свойства вставляются в таблицу cmsPropertyType. Я хочу знать, есть ли способ добавить дополнительные столбцы в таблицу cmsMember и использовать их в приложении.   -  person user1482852    schedule 16.03.2017
comment
Изменение базы данных не является способом работы в Umbraco (если только не вводятся новые таблицы для изменчивых данных для улучшения документов или добавления метаданных). Дополнительные поля, о которых вы говорите, являются структурными дополнениями для вашего члена и должны быть добавлены к вашему типу члена. См. ниже ответ о том, как реализовать новые свойства и показать их в ваших представлениях.   -  person Mark    schedule 16.03.2017


Ответы (1)


Вы захотите добавить свойства в тип члена.

Отметьте их как редактируемые:

введите здесь описание изображения

Наконец, выведите их в своем представлении:

for (var i = 0; i < registerModel.MemberProperties.Count; i++)
{
   <div class="form-group">
       <label for="@Html.IdFor(m => registerModel.MemberProperties[i].Value)">
           @registerModel.MemberProperties[i].Name
           @Html.HiddenFor(m => registerModel.MemberProperties[i].Alias)
       </label>
       @Html.EditorFor(m => registerModel.MemberProperties[i].Value, new { htmlAttributes = new { @class = "form-control" } })
   </div>
}

Примечание: registerModel имеет тип Umbraco.Web.Models.RegisterModel.

Также ознакомьтесь с UmbracoIdentity, отличным пакетом с открытым исходным кодом, который показывает, как работать с функциями, связанными с участниками.

person Mark    schedule 16.03.2017
comment
И как это не повторяющийся вопрос/ответ, как я предложил? :-с - person Jannik Anker; 22.03.2017
comment
@JannikAnker Это не дубликат, потому что вопрос заключается не только в добавлении нового свойства участнику, но и в том, как добавить редактируемое свойство, которое участник может редактировать через интерфейс веб-сайта. - person Mark; 20.11.2018