c# - MVC 错误:尽管输入了有效信息,但仍返回“错误”视图而不是“成功”视图
问题描述
仅当表单中的一个或多个字段为空或为空时,才应该返回错误视图,但即使输入了正确的信息,它也会返回。
我的 Home Controller 中有一个方法,它接受字符串参数,并有一个“if”语句来检查表单中的每个字段是否为空或空。如果为空/空,它应该返回存储在共享文件夹中的错误视图。如果没有,它会返回“Success”(我添加到我的主视图文件夹中的视图文件)。但是,无论是否在表单中输入了有效信息,都不会点击 Success 视图。无论哪种方式,它都会返回错误页面。我不确定您是否可以从下面的代码中看出问题所在,但这是我的索引和家庭控制器代码。如果你还有什么需要看的,请告诉我。另外,如果这不是正确的提问方式,我深表歉意;我对这样的 MVC 和论坛很陌生。
以下是家庭控制器代码:
namespace InsuranceApp.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Quote(string firstName, string lastName, string emailAddress, string DateofBirth, string carYear, string carMake, string carModel, string speedingTickets, string dui, string coverage)
{
if (string.IsNullOrEmpty(firstName) || string.IsNullOrEmpty(lastName) || string.IsNullOrEmpty(emailAddress) || string.IsNullOrEmpty(DateofBirth) || string.IsNullOrEmpty(carYear) || string.IsNullOrEmpty(carMake) || string.IsNullOrEmpty(carModel) || string.IsNullOrEmpty(speedingTickets) || string.IsNullOrEmpty(dui) || string.IsNullOrEmpty(coverage))
{
return View("~/Views/Shared/Error.cshtml");
}
else
{
return View("Success");
}
}
}
}
索引代码:
<div class="row no-gutters m-3">
<div class="card col-sm-12 col-md-10 col-lg-6 mx-auto shadow">
<div class="card-header text-center">
<h5 class="m-0">Auto Insurance Quote Generator</h5>
</div>
<div class="card-body">
@using (Html.BeginForm("Quote", "Home", FormMethod.Post))
{
<div class="row no-gutters">
<div class="form-group col-md-12">
<input name="FirstName" type="text" class="form-control" placeholder="First Name" />
</div>
<div class="form-group col-md-12">
<input name="LastName" type="text" class="form-control" placeholder="Last Name" />
</div>
<div class="form-group col-md-12">
<input name="EmailAddress" type="email" class="form-control" placeholder="Email Address" />
</div>
<div class="form-group col-md-12">
<input name="DateOfBirth" type="text" class="form-control" placeholder="Date of Birth MM/dd/yyyy" />
</div>
<div class="form-group col-md-12">
<input name="CarYear" type="text" class="form-control" placeholder="Car Year" />
</div>
<div class="form-group col-md-12">
<input name="CarMake" type="text" class="form-control" placeholder="Car Make" />
</div>
<div class="form-group col-md-12">
<input name="Car Model" type="text" class="form-control" placeholder="Car Model" />
</div>
<div class="form-group col-md-12">
<input name="SpeedingTickets" type="text" class="form-control" placeholder="How many speeding tickets do you have?" />
</div>
<div class="form-group col-md-12">
<input name="DUI" type="text" class="form-control" placeholder="Have you ever had a dui?" />
</div>
<div class="form-group col-md-12">
<input name="Coverage" type="text" class="form-control" placeholder="Would you like Full Coverage or Liability?" />
</div>
<button type="submit" class="btn btn-block btn-primary">Submit</button>
</div>
}
</div>
</div>
</div>
解决方案
您在 Controller 中的名称与 html 文件中的名称不同。
在 MVC 中,您需要使用大小写字母完全相同的名称。
如果 HTML 文件中的名称是“名称”,则控制器中的名称需要是“字符串名称”而不是“字符串名称”。
希望对您有所帮助。
推荐阅读
- python - 行级操作有时仅在 Numpy 中有效
- php - 我正在尝试检查用户是管理员还是标准用户
- ruby-on-rails - 获取 3 级深度的数据
- java - 如何为每个不同的片段设置动作栏
- excel - Excel - IF 函数如何在不同的单元格中返回多个值?
- python - 当 Kivy 应用程序在 Android 上停止时,logcat 输出无信息
- c++ - 虚幻文档中的教程项目中的错误
- python-3.x - 损失正在减少,但是 keras 神经网络模型的准确性也在减少
- c# - 运算符“+”不能应用于“object”和“int”类型的操作数
- c# - 在 C# 中解析字符串并将它们放入变量中