Работа над MVC Bootstrap-Modal для редактирования собак.Проблема не в том, что все данные правильно отображаются в представлении.
Перед рефакторингом я использовал [httpGet] Iactionresult для индекса, чтобы вернуть мне файл Edit.cshtml, содержащий форму редактирования, и возвращающийся к Index.cshtml после[httpPost] в файле Edit.csthml, используя asp-route-Id, чтобы выбрать правильную собаку для редактирования.
После рефакторинга я использую BootstrapModal в индексе для редактирования собак (ов)в данный момент залогинен в DogOwner.Я получил 4 поля для редактирования: имя, плодородие, описание, InstagramUrl.Имя и InstagramUrl отображаются должным образом, Плодородие и описание - нет.
Следующий фрагмент взят из Index.cstml, где я использую Foreach (элемент var в Model.Dogs) для каждой собаки текущего пользователя, вошедшего в систему:
<div class="editWrapper">
<h3> Edit @item.FirstName</h3>
<form method="post" asp-controller="DogOwner" asp-action="EditDogPost" asp-route-dogId="@item.Id">
<div asp-validation-summary="ModelOnly"></div>
<div>
<label asp-for="@Model.EditDogViewModel.FirstName"></label><br />
<input asp-for="@Model.EditDogViewModel.FirstName" value="@item.FirstName" style="width:180px;" /><br />
<span asp-validation-for="@Model.EditDogViewModel.FirstName"></span>
</div>
<div>
<label asp-for="@Model.EditDogViewModel.DogFertility"></label><br />
<select asp-for="@Model.EditDogViewModel.DogFertility" asp-items="Html.GetEnumSelectList(typeof(DogFace.Domain.Model.Enums.DogFertility))" style="width:180px;">
<option value="@item.DogFertility"></option>
</select>
</div>
<div>
<label asp-for="@Model.EditDogViewModel.Description"></label><br />
<textarea asp-for="@Model.EditDogViewModel.Description" style="width:500px;" value="@item.Description"></textarea><br />
<span asp-validation-for="@Model.EditDogViewModel.Description"></span>
</div>
<div>
<label asp-for="@Model.EditDogViewModel.InstagramUrl"></label><br />
<input asp-for="@Model.EditDogViewModel.InstagramUrl" value="@item.InstagramUrl" style="width:500px;" /><br />
<span asp-validation-for="@Model.EditDogViewModel.InstagramUrl"></span>
</div>
<br />
<input type="hidden" asp-for="@Model.EditDogViewModel.Dog.Id" value="@item.Id" />
<input type="submit" value="Save" />
</form>
</div>
Если я заменил тег Textarea для Description на Input-tag, правильные данные были видны, для FertilityDropdown я не получил подсказки (в Enum: Infertile = 0, Intact = 1)
Как видно на скриншотах, данные для Textarea Description загружены правильно.(значение = Бенни де макс!)
фрагмент EditDogViewModel:
public class EditDogViewModel
{
public int DogId { get; set; }
[Display(Name = "First name")]
public string FirstName { get; set; }
[Display(Name = "Fertility")]
public DogFertility DogFertility { get; set; }
[Display(Name = "Bio"), DataType(DataType.MultilineText)]
public string Description { get; set; }
[Display(Name = "Instagram")]
public string InstagramUrl { get; set; }
public string ReturnUrl { get; set; }
public Domain.Model.Dog Dog { get; set; }
public EditDogViewModel()
{
}
}
это модальная кнопка:
<h3>
<a id="editDogButton" class="pointer">@item.FirstName</a>
</h3>
Не стесняйтесь спрашивать больше codenippets при необходимостиили найдите их по адресу http://pepijncappoen.visualstudio.com/DogFace
Спасибо за любые указатели или советы!