我正在尝试使用 ASP.NET Core 3.0 和 Entity Framework 6 在 Razor 页面上使用复合键对实体进行删除操作。有问题的实体是一个CourseAssignment复合键由一个InstructorID值和一个CourseID值组成的实体.
对于具有普通单字段键的Course实体(例如具有CourseID主键的实体),razor 页面上的代码是这样的:
<form method="post">
<input type="hidden" asp-for="Course.CourseID" />
<input type="submit" value="Delete" class="btn btn-danger" /> |
<a asp-page="./Index">Back to List</a>
</form>
Run Code Online (Sandbox Code Playgroud)
这会产生这样的 URL: https://localhost:44388/Courses/Delete?id=1045
对此起作用的 C# 代码是:
<form method="post">
<input type="hidden" asp-for="Course.CourseID" />
<input type="submit" value="Delete" class="btn btn-danger" /> |
<a asp-page="./Index">Back to List</a>
</form>
Run Code Online (Sandbox Code Playgroud)
如何更改 razor 页面和 C#OnPostAsync操作以处理具有需要两个值的复合键的实体?
谢谢!
c# entity-framework-6 asp.net-core razor-pages asp.net-core-3.0
我有一个TryUpdateModelAsync调用,一旦失败,就会返回 false。目前还不清楚它失败的原因。我怎样才能获得更多信息?
if (await TryUpdateModelAsync<ComputerFile>(
computerFileToUpdate,
"computerfile",
f => f.FileName, f => f.ContentDescription, f => f.SourceItemID, f => f.FileTypeID,
f => f.CreatedOnDate, f => f.CreatedByID, f => f.ModifiedOnDate, f => f.ModifiedByID))
{
await _context.SaveChangesAsync();
return RedirectToPage("./Index");
}
return Page();
Run Code Online (Sandbox Code Playgroud)