【发布时间】:2021-07-22 03:38:55
【问题描述】:
我只是在学习 ASP.NET Core 5.0 和 Entity Framework Core。我的一个控制器中有一个简单的功能,可以在单击时将数字 1 添加到数据库中。
当我单击链接时,该值已正确添加到数据库中,但视图崩溃。如果我在初始页面加载时调用该函数,它可以正常工作,但是通过单击按钮调用它对我不起作用。要么什么都没有发生,要么调用了函数但我得到了一个空引用异常,这取决于我的尝试。
MyAppController.cs
public IActionResult InsertNewActionNumber()
{
_context.RGWActions.Add(new RGWAction { ReduceMeat = 1 });
_context.SaveChanges();
Debug.WriteLine("*******************TEST2********************TEST2*********************");
return View();
}
链接在MyApp.cshtml:
<td class="d-none d-sm-none d-md-none d-lg-table-cell d-xl-table-cell" style="vertical-align:middle; text-align:center;">
<a href="@Url.Action("InsertNewActionNumber", "MyApp")">
<img src="@Model.MouseClickIconThumbnailUrl" id="MouseClickIconRow1" width="20" height="35" alt="Mouse Click Here Image">
</a>
</td>
当我单击链接时,该值已正确添加到数据库中,但我在视图本身的第一行 return View(); 上遇到了空引用异常 ViewData["Title"] = _loc[Model.PageTabTitle];
@model MyAppViewModel
@using Microsoft.AspNetCore.Identity
@using MyApp.Data
@using System.Globalization
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
@{
ViewData["Title"] = _loc[Model.PageTabTitle];
}
我也试过了:
- 按this link 进行点击。但该函数根本没有被调用。
-
@Using根据this link。也没有欢乐。 - Razor 语法
<a href="" asp-action="InsertNewActionNumber" asp-controller="ReduceGlobalWarming"></a>但我收到 InvalidOperationException: Cannot override the 'href' attribute for 错误。 - 前 10 或 15 个结果的变体来自 google 和堆栈溢出。
任何关于我做错了什么的帮助将不胜感激?
【问题讨论】:
-
因此,您的视图需要一个模型,并且您不会从控制器将模型返回到您的视图。对我来说,这似乎是一个很好的 AJAX 调用案例,而不是使用按钮发布到控制器。我这么说是因为您的控制器方法似乎并没有在整个模型上运行,而只是增加了一个属性。
标签: c# .net-core asp.net-core-5.0