首页 > 解决方案 > 在 Asp Net MVC 中持久显示表单提交失败的数据

问题描述

鉴于我有下面的简单场景,当表单发布验证在服务器端失败时,如何保存显示数据,即 InfoAboutInput?
如果模型验证失败,我是否必须依靠基于会话的缓存在服务器端重新填充我的模型?还是有其他一些技巧可以用来做到这一点?

简单视图模型:

public class FormViewModel : IValidatableObject
{
    public string InfoAboutInput { get; set; } // customised display info per user    
    public string UserInput { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
         // perform some specialised validation on UserInput
    }
}

简单的消费视图:

@model FormViewModel
<div>
    <form>
        <h3>@Model.InfoAboutInput</h3>
        <input asp-for="UserInput"/>
        <button>Submit</button>
    <form>
</div>

标签: c#asp.net-mvc-4

解决方案


捕获帖子的控制器操作将可以访问任何表单字段及其值。在此操作中,只需创建一个新模型,从数据库或其他任何内容中填充它,并使用表单值填充任何回发的值。然后将模型作为控制器操作的结果返回。


推荐阅读