...

Изменение стандартного интерфейса профиля пользователя

Тема в разделе "Разработчикам", создана пользователем elmakb, 24 май 2018.

  1. elmakb

    elmakb New Member

    В файл "ContactInfo.cshtml" в тег "table" добавил строки:
    <tr>
    <td class="captionCell">
    @Html.Caption(u => u.User.RabochiyGorodskoy) //Это 40 строка
    </td>
    <td style="white-space: nowrap;">
    <a href='mailto:mad:(Model.User.RabochiyGorodskoy)'>@(Model.User.RabochiyGorodskoy)</a>
    @if (!string.IsNullOrWhiteSpace(Model.User.RabochiyGorodskoy))
    {
    <a href='mailto:mad:(Model.User.RabochiyGorodskoy)'>@(Model.User.RabochiyGorodskoy)</a>
    }
    </td>
    </tr>
     
  2. alexfuse

    alexfuse Member

    @Html.Caption("Model.User.RabochiyGorodskoy") попробуйте так
     
  3. elmakb

    elmakb New Member

    System.Web.HttpCompileException: c:\ELMA3-Standart\Web\Modules\EleWise.ELMA.BPM.Web.Security\Views\User\Views\ContactInfo.cshtml(43): error CS1061: 'EleWise.ELMA.Security.Models.IUser' does not contain a definition for 'RabochiyGorodskoy' and no extension method 'RabochiyGorodskoy' accepting a first argument of type 'EleWise.ELMA.Security.Models.IUser' could be found (are you missing a using directive or an assembly reference?)
    43 строка:
    @(Model.User.RabochiyGorodskoy)
    В дизайнере добавлял: Объекты-Безопасность-Пользователь-Добавить свойство-Опубликовать.
     
  4. alexfuse

    alexfuse Member

    а сервер перезапустили? Объекты публикуются только после перезагрузки.
     
  5. elmakb

    elmakb New Member

    Да, перезапускал, хотя. Сейчас проверю, похоже что нет.
     
  6. elmakb

    elmakb New Member

    Сервер перезапустил. Та же ошибка, что и в #18 посте(
     
  7. elmakb

    elmakb New Member

    Содержимое файла "Grid.cshtml" не менял. Не совсем понимаю зачем он нужен.
     
  8. alexfuse

    alexfuse Member

    В 43 строке как в 40 попробуйте записать
    @("Model.User.RabochiyGorodskoy")
     
  9. elmakb

    elmakb New Member

    Так и написано(
     
  10. arkarimov

    arkarimov Member

    такая ругань бывает когда забудешь включить пространство System.Linq, добавьте его все должно получиться.
     
  11. elmakb

    elmakb New Member

    Доброе утро!
    Подключил это пространство, добавив строку:
    Код:
    @using System.Linq
    перед
    Код:
    @model EleWise.ELMA.BPM.Web.Security.Models.UserModel
    в файле "ContactInfo.cshtml".
    Ошибка та же:
    System.Web.HttpCompileException: c:\ELMA3-Standart\Web\Modules\EleWise.ELMA.BPM.Web.Security\Views\User\Views\ContactInfo.cshtml(44): error CS1061: 'EleWise.ELMA.Security.Models.IUser' does not contain a definition for 'RabochiyGorodskoy' and no extension method 'RabochiyGorodskoy' accepting a first argument of type 'EleWise.ELMA.Security.Models.IUser' could be found (are you missing a using directive or an assembly reference?)
    Вот проблемная часть кода:
    Код:
    <tr>
      <td class="captionCell">
        @Html.Caption("Model.User.RabochiyGorodskoy")
      </td>
      <td style="white-space: nowrap;">
        @(Model.User.RabochiyGorodskoy)
        @if (!string.IsNullOrWhiteSpace(Model.User.RabochiyGorodskoy))
        {
          <a href='mailto:@(Model.User.RabochiyGorodskoy)'>@(Model.User.RabochiyGorodskoy)</a>
        }
      </td>
    </tr>
    Спасибо за любую помощь в данном вопросе!
     
  12. arkarimov

    arkarimov Member

    Model.User имеет тип IUser, пользовательское поле там отсутствует т.к. оно в классе IUserConfigExt, должно помочь приведение одного к другому, т.е. объявить переменную вначале
    @MyUser=(IUserConfigExt)Model.User; //добавить пространство EleWise.ELMA.ConfigurationModel
    Далее использовать MyUser
     
  13. elmakb

    elmakb New Member

    ContactInfo.cshtml(3): error CS0103: The name 'MyUser' does not exist in the current context. Ругается на объявление переменной. Я правильно понимаю, что в файлах с расширением *.cshtml используется разметка razor?
     
  14. elmakb

    elmakb New Member

    В файле ContactInfo.cshtml объявил так:
    Код:
    @using System.Linq
    @using EleWise.ELMA.ConfigurationModel
    @model EleWise.ELMA.BPM.Web.Security.Models.UserModel
    @{
        var MyUser =(IUserConfigExt)Model.User;
    }
    Отображение следующее:
    Код:
    <tr>
        <td class="captionCell">
            @Html.Caption("MyUser.RabochiyGorodskoy")
        </td>
        <td style="white-space: nowrap;">
            @(MyUser.RabochiyGorodskoy)
            @if (!string.IsNullOrWhiteSpace(MyUser.RabochiyGorodskoy))
            {
                <a href='mailto:@(MyUser.RabochiyGorodskoy)'>@(MyUser.RabochiyGorodskoy)</a>
            }
        </td>
    </tr>
    
    Страница загружается без ошибок.

    Теперь по поводу добавления в представление для редактирования в файл "ContactInfoEditor.cshtml":
    Код:
    @model EleWise.ELMA.Security.Models.IUser
    
    @using (Html.TableForm(EleWise.ELMA.Model.Views.ViewType.Edit))
    {
        @Html.EditableProperty(u => u.RabochiyGorodskoy, a => a.Html.style.width = "250px;")
    }
    @Html.ExtensionZone("EleWise.ELMA.BPM.Web.Security.ContactInfoEditor")
    Ошибка следующая:
    System.Web.HttpCompileException: c:\ELMA3-Standart\Web\Modules\EleWise.ELMA.BPM.Web.Security\Views\User\Editors\ContactInfoEditor.cshtml(9): error CS1660: Cannot convert lambda expression to type 'string' because it is not a delegate type
     
  15. elmakb

    elmakb New Member

    Не подскажете каким образом добавить вновь созданное поле "RabochiyGorodskoy" в форму для редактирования?)
     

Поделиться: