我开始使用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
属性为空,但旧值保持不变。我错过了什么?
答案 0 :(得分:1)
我能够在我的本地环境中重现您的问题,您需要做的是在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);
}
答案 1 :(得分:-1)
似乎你没有让视图知道它应该使用哪个模型。你有吗
@Model TestModel
在您视图顶部的某处,但忘了复制到这里?
丹尼尔