【发布时间】:2021-10-20 01:57:37
【问题描述】:
我使用 MvcControllerWithContextScaffolde 来创建 Scaffold, 这是我的 Index.cshtml
<td>
@Html.DisplayFor(modelItem => item.PoNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.ItemNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProductNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Qty)
</td>
<td>
@Html.DisplayFor(modelItem => item.NetPrice)
</td>
和网站可以显示数据,但删除、详细信息、编辑.cshtml不起作用。 我已经修复了代码,但它仍然没有工作。 这是我的 Delete.cshtml
<div>
<h4>PoItem</h4>
<hr />
<dl class="row">
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.PoNo)
</dt>
<dt class="col-sm-10">
@Html.DisplayFor(model => model.PoNo)
</dt>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.ItemNo)
</dt>
<dt class="col-sm-10">
@Html.DisplayFor(model => model.ItemNo)
</dt>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.ProductNo)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.ProductNo)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.Qty)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.Qty)
</dd>
<dt class="col-sm-2">
@Html.DisplayNameFor(model => model.NetPrice)
</dt>
<dd class="col-sm-10">
@Html.DisplayFor(model => model.NetPrice)
</dd>
</dl>
<form asp-action="Delete">
<input type="hidden" asp-for="PoNo" />
<input type="hidden" asp-for="ItemNo" />
<input type="submit" value="Delete" class="btn btn-danger" /> |
<a asp-action="Index">Back to List</a>
</form>
这是我的数据库表。我使用带有两列的主键。
CREATE TABLE po_items (
po_no INTEGER,
item_no INTEGER,
product_no INTEGER,
qty INTEGER,
net_price NUMERIC,
PRIMARY KEY (po_no, item_no)
我认为问题在于我有两个主键,但我不知道如何解决问题。
【问题讨论】:
-
你可以看看这个official document,如果你遇到问题,请随时分享。你可以使用Update like this
-
致 Md Farid Uddin Kiron:我看过网站,但我认为我们有一点不同。网站没有使用复合键。
-
好吧,我可以知道你的目的是什么是客户端的复合键?您是否使用数据库优先方法?
-
致 Md Farid Uddin Kiron:是的,我首先使用数据库,它使用复合键。我发现当我使用主键时,它可以在 CRUD 上运行,但是当我使用复合键数据库时,它会在 CRUD 上出现错误。
-
您也提供
item_no对吗?所以我不确定为什么你不能CRUD它,如果两个主键都给定了那么它不应该遇到问题
标签: postgresql asp.net-core-mvc crud scaffold