MVC Bootstrap Modal EditForm не все данные отображаются правильно - PullRequest
0 голосов
/ 26 декабря 2018

Работа над 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

Спасибо за любые указатели или советы!

DogProfile plus EditModal

Browser-debug

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...