假设一个简单的模型:
public class PostViewModel
{
[DataType(DataType.Date)] public DateTime Start { get; set; }
[DataType(DataType.Date)] public DateTime End { get; set; }
}
以及GET和POST操作:
[HttpGet]
public IActionResult Edit(PostViewModel viewModel)
{
return View(viewModel);
}
[HttpPost]
[ActionName(nameof(Edit))]
public IActionResult EditPost(PostViewModel viewModel)
{
viewModel.Start = DateTime.Today;
viewModel.End = DateTime.Today.AddDays(7);
return View(viewModel);
}
帖子的响应始终返回发布的值,而不是我手动设置的值:
如何解决此问题?
答案 0 :(得分:0)
那是设计使然。仅当用户需要纠正某种验证错误时,才应从发布操作中返回视图。在这种情况下,他们需要显示发布的值(而不是默认值或其他值),以便他们可以更正错误并重新提交。
如果发布操作的结果成功,那么您应该重定向,即使它是相同的URL。这就是所谓的PRG(后重定向获取)模式。