单击编辑后,数据未以表格形式填充

时间:2019-07-19 15:31:49

标签: asp.net-mvc model-binding

我正在从事这个ASP.NET MVC项目的工作,我在其中执行简单的CRUD操作。单击Edit按钮后,我想从数据库中获取数据并填充到Create视图中(在我帮助输入数据的同一视图中)。

我遇到的问题是,尽管我可以使用Create.cshtml视图将数据输入数据库,但无法将数据重新填充到同一{{1} },然后点击View。检查后,我发现可以从Edit从数据库中获取数据,并将其发送到Controller。但是,这些字段未填充到View - Create中。

我要去哪里错了?

查看-Create.cshtml

View

控制器-BooksController.cs

<form method="post" action="/Books/Create" id="formBooks">
    <div class="form-group">
        <div class="form-row">
            <div class="form-group col-md-6">
                <div>
                    <label asp-for="Title" class="label">Title</label>
                    <input asp-for="Title" class="form-control" id="title" name="title" required />
                    <span asp-validation-for="Title" class="text-danger"></span>
                </div>
                <div>
                    <label asp-for="Author" class="label">Author</label>
                    <input asp-for="Author" class="form-control" id="author" name="author" required />
                <span asp-validation-for="Author" class="text-danger"></span>
                </div>

                ...

            </div>
            <div class="form-group col-md-6">
                <button type="submit" value="Save" class="btn bgm-orange waves-effect mybtn">SAVE</button>
            </div>
        </div>
    </div>
</form>

2 个答案:

答案 0 :(得分:0)

public ActionResult Create(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Books books= db.Books.Find(id);
        if (books== null)
        {
            return HttpNotFound();
        }
        return View(books);
    }

//尝试这个,我希望它能起作用

答案 1 :(得分:0)

name属性在将数据绑定到<input></input>字段中起着至关重要的作用。同样,value属性获取要显示在Edit视图中的值。

<input asp-for="Title" class="form-control" id="title" name="title" placeholder="Enter title..." value="@(Model != null ? Model.Title : "")" required />