为什么模型值未清除
本文关键字:清除 模型 为什么 | 更新日期: 2023-09-27 18:36:38
我开始使用 Asp.Net MVC。这是我的cshtml:
@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { @class = "form-horizontal" }))
{
@Html.TextBoxFor(m => m.Username, new { @class = "form-control" })
<input type="submit" value="Submit" />
}
这是我的控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
return View();
}
[HttpPost]
public ActionResult Index(TestModel testModel)
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
testModel.Username = string.Empty;
return View(testModel);
}
}
正如您在发布表单时所看到的,我正在清除 Username
属性以清空,但旧值保持不变。我错过了什么?
我能够在我的本地环境中重现您的问题,您需要做的是在 post 方法中使用以下行
ModelState.Clear();
您的方法应如下所示
[HttpPost]
public ActionResult Index(TestModel testModel)
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
testModel.Username = string.Empty;
ModelState.Clear();
return View(testModel);
}
您似乎没有让视图知道它应该使用哪个模型。你有吗
@Model TestModel
在您视图顶部的某个地方,但忘记在这里复制?
丹尼尔