MVC Bootstrap Modal EditForm不能正确显示所有数据

时间:2018-12-26 20:00:29

标签: c# asp.net-core-mvc entity-framework-core bootstrap-modal

使用MVC Bootstrap-Modal编辑狗。 问题是并非所有数据都正确显示在视图中。

在重构之前,我使用了索引上的[httpGet] Iactionresult向我返回了一个包含一个编辑表单的Edit.cshtml,并在asp-route-上返回了Edit.csthml上一个[httpPost]之后的Index.cshtml。请选择正确的狗来进行编辑。

重构后,我在索引上使用BootstrapModal编辑当前登录的DogOwner的狗。我有4个字段要编辑:名称,生育力,描述,InstagramUrl。名称和InstagramUrl的显示符合预期,而生育力和描述则未显示。

下一个代码片段来自Index.cstml,其中我对当前登录用户的每条狗使用一个Foreach(Model.Dogs中的var项目):

 onAddClick = () => {
    this.state.tempAddList.forEach((id) => {
        this.setState({
            relInfo: {
                ...this.state.relInfo,
                modId: id
            }
        }, () => this.addRelation());
    });
};

addRelation = () => {
    EdmApi.insertModifier(this.state.relInfo)
        .then(res => console.log(res))
        .catch(err => console.log(err));
};

如果我将Description的Textarea标签更改为Input标签,则可以看到正确的数据,对于FertilityDropdown,我一无所知(在Enum中:Infertile = 0,Intact = 1)

如您在屏幕截图中所见,Textarea Description的数据已正确加载。 (值= Benny是最大!)

片段EditDogViewModel:

     <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>

这是模式按钮:

    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()
    {
    }
}

如果需要,可以随时询问更多代码段,或在http://pepijncappoen.visualstudio.com/DogFace上找到它们

感谢任何提示或技巧!

DogProfile plus EditModal

Browser-debug

0 个答案:

没有答案