【问题标题】:Asp.net core how to do model validation on View ComponentsAsp.net core 如何对视图组件进行模型验证
【发布时间】:2020-02-23 22:22:54
【问题描述】:

我目前有一个包含表单的视图组件。一旦这个表单被提交,它就会被发送到控制器并检查模型状态。通常在模型状态无效后,我只需使用传入的模型重新加载视图,并在验证错误消息中显示值。我的问题是因为我正在使用视图组件,如何将带有验证错误消息的模型从控制器返回到视图组件。我需要通过视图和视图组件让它们建模。

假设我提交了带有模型验证失败的数据的表单并且下面的控制器方法被命中,在检查模型状态并失败后,我将如何将其返回给视图组件?

public async Task<IActionResult> UpdateDetails(CustomerDetailsViewModel customerDetailsViewModel)
{
    if (ModelState.IsValid)
    {
         ...
    }
    //How to return 'customerDetailsViewModel' back to view component
}

【问题讨论】:

  • 我认为您可能正在寻找类似以下内容的内容:stackoverflow.com/questions/5212248/…
  • 不,这不是我想要的。当我只有一个常规视图时,这很有效。我已经在视图组件上设置了所有验证。我只需要一种将模型从控制器获取到视图组件的方法。 @Klicker
  • 您的视图组件不是位于视图上吗(您的表单在哪里)?所以你实际上仍然会返回你的视图,然后将模型传递给你的视图组件,该组件应该将它作为参数。

标签: c# asp.net-mvc asp.net-core razor asp.net-core-mvc


【解决方案1】:

您只需要按照下面的 sn-p 返回模型的视图:

if(ModelState.IsValid)
{
  //What you want to do

}
else
{
return View(customerDetailsViewModel);
}

返回customerDetailsViewModel的视图会返回客户之前填写的所有数据

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    相关资源
    最近更新 更多