c# - 在 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>
解决方案
捕获帖子的控制器操作将可以访问任何表单字段及其值。在此操作中,只需创建一个新模型,从数据库或其他任何内容中填充它,并使用表单值填充任何回发的值。然后将模型作为控制器操作的结果返回。
推荐阅读
- php - mysqli 准备好的语句 - 你还需要转义数据吗?
- javascript - 在 JavaScript 中另一个(异步)函数完成后执行一个函数
- python - 如何编写一个 for 循环来查找阶乘并且只打印最终数字而不是整个列表
- c# - Jquery Validation 适用于默认 [Required] 但不适用于自定义类
- google-apps-script - 如何使用谷歌脚本返回所有任务
- java - 在 java web 中使用用户类型登录
- c - 为什么在分配的内存中使用 qsort 后 free 函数会崩溃?
- ios - 让客观 c 代码记住用户在屏幕上触摸过的地方
- java - For循环上的意外令牌
- c++ - C++ 编译错误 LNK2019:未解决的外部符号错误