#asp.net-core #view #asp.net-core-mvc #viewmodel
#asp.net-ядро #Вид #asp.net-core-mvc #viewmodel
Вопрос:
Чтобы дать некоторую информацию, я пытаюсь установить временный пароль для учетной записи, который потребуется изменить при входе в систему.
Я создаю «Случайную строку» и устанавливаю для нее переменную ViewBag здесь:
public IActionResult CreateAdminAccount()
{
Random rng = new Random();
var num = rng.Next(1, 100);
ViewBag.Password = "Administrator" num "!";
return View();
}
Я устанавливаю значение Password
поля для этой переменной для просмотра в виде открытого текста (отключено, поэтому поле нельзя изменить).
<!-- rest of form omitted for brevity -->
<div class="form-group">
<label asp-for="Password" class="control-label"></label>
<input asp-for="Password" class="form-control" value="@ViewBag.Password" disabled />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
Когда я отправляю форму, я получаю сообщение об ошибке проверки, в котором указано, что «Поле пароля обязательно». Есть ли какое-то взаимодействие, которого мне не хватает? поскольку я могу видеть это значение в представлении, я думаю, что оно будет отправлено вместе с формой вместе с остальными полями (соответствующее свойство ViewModel ниже).
[Required]
public string Password { get; set; }
Ответ №1:
Пожалуйста, обратите внимание, что отключенные элементы в форме не будут отправлены. Вы можете попробовать сделать его доступным только для чтения, как показано ниже.
<input asp-for="Password" class="form-control" value="@ViewBag.Password" readonly />
Комментарии:
1. Ах, хорошо, имеет смысл, что это был просто простой недосмотр … очень признателен!