强制ASP Core显示模型属性而不显示表单数据

时间:2019-05-08 14:02:07

标签: c# asp.net-core

假设一个简单的模型:

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);
}

帖子的响应始终返回发布的值,而不是我手动设置的值:


to_datetime

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

那是设计使然。仅当用户需要纠正某种验证错误时,才应从发布操作中返回视图。在这种情况下,他们需要显示发布的值(而不是默认值或其他值),以便他们可以更正错误并重新提交。

如果发布操作的结果成功,那么您应该重定向,即使它是相同的URL。这就是所谓的PRG(后重定向获取)模式。