Проверить Возможные проблемы аутентификации
Метод GetUserName()
будет возвращать только имя текущего пользователя, прошедшего аутентификацию, так что если вы не вошли ни в одну из существующих учетных записей, оно будет пустым.
Это может варьироваться в зависимости от режима проверки подлинности вашего приложения (т.е. проверки подлинности на основе форм, Windows и т.д.), которые обычно можно увидеть в <authentication>
части вашего файла web.config:
<!-- Forms-based authentication (i.e. default username/password scenario) -->
<authentication mode="Forms"/>
<!-- Windows-based authentication (i.e. use current account) -->
<authentication mode="Windows"/>
В сценарии «Файл»> «Новый проект» проверка подлинности форм, вероятно, будет включена (если только она не была явно отключена), поэтому вы должны просто создать новую учетную запись, а затем войти в учетную запись, чтобы увидеть правильное отображение имени пользователя внутри вид.
Рассмотрит использование альтернативного
Если вы уверены, что аутентификация не основной вопрос, рассмотреть избегая методы HTML Helper полностью и просто выводить значения в скрытое поле с использованием либо существующий GetUserName()
метода или User.Identity.Name
свойство, которое должно возвращать то же значение, если у вас есть не возился с Претензии:
<div class="form-control-static">
<!-- Either of these approaches should work if you are authenticated -->
<input type='hidden' value='@User.Identity.GetUserName()' />
<input type='hidden' value='@User.Identity.Name' />
@Html.ValidationMessageFor(model => model.CreatedBy, "", new { @class = "text-danger" })
</div>
Если все остальное терпит неудачу ...
Если ни одно из предлагаемых решений, похоже, не работает, возможно, что что-то не так правильно настроено в вашем проекте (а именно, встроенная логика Identity).
Возможно, это может произойти, если вы создали пустой проект, а затем просто вставили какой-либо код из шаблона по умолчанию, в котором идентификатор не будет настроен должным образом.
Пожалуйста, обратите внимание тегов - и когда говорят, НЕ ИСПОЛЬЗОВАТЬ, пожалуйста, не используйте. –