gpt4 book ai didi

mysql - .Net Core MVC 表单提交发布到数据库,但 View 抛出错误

转载 作者:行者123 更新时间:2023-11-29 15:24:42 24 4
gpt4 key购买 nike

正如标题所暗示的,将数据发布到数据库不是问题。问题是数据发布后网页本身会发生什么。基本上,我希望用户在提交表单后留在页面上。添加有关公司的详细信息后,用户单击“提交”,收到一条消息“添加成功”,表单被清除,然后就可以再次提交。

相反,数据被发送,但随后我收到错误:

InvalidOperationException:未找到 View “AddCompany”。搜索了以下位置:/Views/AddCompany/AddCompany.cshtml/Views/Shared/AddCompany.cshtml

为了节省空间,我不会显示每个部分的所有代码,但希望您能明白。

型号代码:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<CommunicationDetails>(entity =>
{
entity.HasKey(e => e.FirstContactDate)
.HasName("PRIMARY");

entity.Property(e => e.FirstContactDate).HasColumnType("date");

entity.Property(e => e.CompanyName)
.IsRequired()
.HasColumnType("varchar(50)")
.HasCharSet("latin1")
.HasCollation("latin1_swedish_ci");

entity.Property(e => e.FirstContactMethod)
.IsRequired()
.HasColumnType("varchar(20)")
.HasCharSet("latin1")
.HasCollation("latin1_swedish_ci");

...等等。

Controller 代码:

namespace dotnetproject2.Controllers
{
public class AddCompanyController : Controller
{
public IActionResult AddCompany()
{
return View();
}

[HttpPost]
public IActionResult AddCompany (CompanyDetails company) {
if (ModelState.IsValid)
{
using (AddCompanyContext db = new AddCompanyContext())
{
db.CompanyDetails.Add(company);
db.SaveChanges();
}
ModelState.Clear();
ViewBag.Message = company.companyName + " has been added.";
}
return View();
}
}

查看代码:

<form id="company-form" asp-controller="AddCompany" asp-action="AddCompany" method="post">
<div class="form-group">
<label class="col-sm-4" for="companyName">Company Name</label>
<input type="text" asp-for="companyName" id="companyName" class="form-control-sm col-sm-6">
</div>
<div class="form-group">
<label class="col-sm-4" for="publicEmail">Public Email</label>
<input type="text" asp-for="publicEmail" id="publicEmail" class="form-control-sm col-sm-6">
</div>
<div class="form-group">
<label class="col-sm-4" for="contactPersonOne">Contact Person 1</label>
<input type="text" asp-for="contactPersonOne" id="contactPersonOne" class="form-control-sm col-sm-6">
</div>

抱歉,如果这篇文章太长了。不确定要包含多少代码。也请忽略奇怪的缩进;我的 IDE 中一切正常。

此外,我正在使用 VS Code,因此基于 Visual Studio 的解决方案很可能无法解决此问题。例如,使用 Controller 来构建 View 似乎不是我的选择。

最佳答案

不完全确定这在技术上是否应该是一条评论,但我解决了问题。

我仍然不知道上面的代码哪里出了问题,但更大的问题是我的方法。我从一开始就应该做的就是按照微软文档中的教程进行操作:https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-3.1&tabs=visual-studio

我不知道可以通过一些简单的命令来完成模型/ View / Controller 的脚手架 CRUD 代码。我认为这样的脚手架只适用于 Visual Studio,因为当我右键单击 YouTube 教程上的内容时,使用 VS Code 时,脚手架选项不适合我。现在我知道我可以通过 CLI 做同样的事情。

因此,总体要点是:不要随意搜索您想做的每件小事的教程。只需按照 Microsoft 文档中的教程进行操作即可处理项目的大部分内容(例如 CRUD)。当您安装教程中告诉您安装的软件包时,请记住了解您的 .Net Core 版本。

关于mysql - .Net Core MVC 表单提交发布到数据库,但 View 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59153267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com