MVC5 Razor 在Controller中修改Model的值为什么在View没有变化?

zl_c zl_c 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
2个同名的Action, 一个是GET,另一个POST方式。模型实例提交到POST的Action中处理,将模型一些值修改,但在View中看不到变化,仍然是原来的值。

上代码,
Model
    public class TestModel
{
[Display(Name = "用户名")]
[Required(ErrorMessage = "必填")]
public string Name { get; set; }

[Display(Name = "密码")]
[Required(ErrorMessage = "必填")]
public string Password { get; set; }
}

Controller
        public ActionResult Test()
{
TestModel testModel = new TestModel()
{
Name = "用户1",
Password = "password1"
};
return View(testModel);
}

[HttpPost]
public ActionResult Test(TestModel testModel)
{
bool isOk = true;//这里假设密码是对
if (isOk)
{
testModel.Name = "用户2";//此行没起作用
testModel.Password = "password2";//此行没起作用
}
else
{
ModelState.AddModelError("","密码错误");
}
return View(testModel);
}

View
@{
Layout = null;
}
@model Web.Models.Member.TestModel
<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
</head>
<body>
<div>
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div>
@Html.LabelFor(model => model.Name)
@Html.TextBoxFor(model => model.Name)
</div>
<div>
@Html.LabelFor(model => model.Password)
@Html.TextBoxFor(model => model.Password)
</div>
<div><input type="submit" value="提交" /></div>
}
</div>
</body>
</html>

按我的设想,提交后,在页面上文本框中应该自动显示"用户2",但仍然显示“用户1”
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
zl_c
.NET社区 62,272 成员 668,968 内容