Ввод текстовой области страниц Razor просто растет и растет, когда другие проверки ввода не проходят проверку

#asp.net-core #razor #razor-pages

#asp.сетевое ядро #бритва #бритвенные страницы

Вопрос:

Я использую asp.net основные и бритвенные страницы. У меня есть простая страница формы с несколькими текстовыми полями, а затем 1 текстовая область. Если переменная объекта моей модели , связанная с областью текста, проходит проверку, но, скажем, 1 из других текстовых полей не проходит проверку, то после возврата страницы значение в моей области текста увеличивается на основе предыдущего значения. так,например, если текстовая область содержала «abc,xyz», то что произойдет после того, как страница вернется после неудачной проверки из другого обычного текстового поля на странице, тогда текстовая область вырастет до «abc, xyzabc, xyz»

все, что у меня есть, — это простая текстовая область

 lt;textarea class="form-control" asp-for="MyObject.EmailsList" rows="3" placeholder="Multiple addresses need to be seperated by a semi-colon ;"gt;lt;/textareagt;  

Я отладил и подтвердил,что MyObject.EmailsList содержит только «abc, xyz» каждый раз, когда страница возвращается из-за сбоя проверки какого-либо другого текстового поля. итак, я ломаю голову над тем, почему эта текстовая область не очищается и не загружается в значение должным образом??

Ответ №1:

Если у вас есть ошибка проверки поля ввода, вы хотите удвоить заданное значение в своей текстовой области, вы можете обратиться к этой демонстрации:

Модель:

 [Required]  [BindProperty]  public string name { get; set; }   [BindProperty]  public myObject MyObject { get; set; } = new myObject { EmailsList="xyz"};  public class myObject  {  public string EmailsList { get; set; }  }  

Вид:

 lt;form id="myform" method="post"gt;  lt;div class="form-group"gt;  lt;label asp-for="name" class="control-label"gt;lt;/labelgt;  lt;input asp-for="name" class="form-control" /gt;  lt;span asp-validation-for="name" class="text-danger"gt;lt;/spangt;  lt;/divgt;   lt;textarea class="form-control" asp-for="MyObject.EmailsList" rows="3" placeholder="Multiple addresses need to be seperated by a semi-colon ;"gt;lt;/textareagt; lt;/formgt; lt;button onclick="Test()"gt;click me!lt;/buttongt;   @section Scripts{  lt;script src="~/lib/jquery-validation/dist/jquery.validate.min.js"gt;lt;/scriptgt;  lt;script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"gt;lt;/scriptgt;   lt;scriptgt;  function Test() {  $("#myform").validate();  if ($("#myform").valid()) {  $.ajax({  type: "POST",  url: '',  headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },  data: $("#myform").serialize(),  success: function (data) {   },  })  } else{  $("#MyObject_EmailsList").val($("#MyObject_EmailsList").val()   $("#MyObject_EmailsList").val());  }  }  lt;/scriptgt; }  

Запрос:

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