首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用RedirectToAction时如何维护ModelState错误?

在ASP.NET Core MVC中,当使用RedirectToAction时,如果需要维护ModelState中的错误,可以使用TempData来临时存储和传递ModelState。以下是一个示例:

  1. 首先,确保已经安装并引用了Microsoft.AspNetCore.Mvc.ViewFeatures包。
  2. 在需要使用RedirectToAction的控制器方法中,将ModelState存储到TempData中:
代码语言:csharp
复制
TempData["ModelState"] = ModelState;
  1. 在目标Action中,从TempData中检索ModelState并将其还原:
代码语言:csharp
复制
ModelState = (ModelStateDictionary)TempData["ModelState"];
  1. 在视图中,显示ModelState中的错误:
代码语言:html
复制
@foreach (var error in ModelState.Values.SelectMany(v => v.Errors))
{
    <p>@error.ErrorMessage</p>
}

这样,在使用RedirectToAction时,ModelState中的错误将被维护并在目标视图中显示。

需要注意的是,TempData是基于会话的,因此在使用RedirectToAction时,确保目标Action和当前Action在同一个会话中。如果需要跨会话使用TempData,可以考虑使用其他方法,如将ModelState序列化为JSON并将其传递为查询参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

Get: 当需要获取数据使用。 Post: 当需要新建一些事物使用。 Put: 当需要更新数据使用。 Delete:需要删除数据使用。...当保存按钮被点击,保存按钮的值也会随着请求被发送到服务器端,当点击取消按钮,取消按钮的值”取消“会随着请求发送。 在Action 方法中,Model Binder 将维护这些工作。...如:ModelState[“FirstName”],表示将包含所有与First Name相关的错误。              ...在我们了解Data Annotation之前先来了解一些Model Binder知识: 使用元数据类型,Model Binder 是如何工作的?...如之前讨论的,ModelBinder更新ModelState。ValidationMessage根据关键字显示ModelState表示的错误信息。 如果我们需要可空的整数域,该怎么做?

5.2K100

七天学会ASP.NET MVC (四)——用户授权认证问题

小编应各位的要求,快马加鞭,马不停蹄的终于:七天学会 Asp.Net MVC 第四篇出炉,在第四天的学习中,我们主要了学习如何在MVC中如何实现认证授权等问题,本节主要讲了验证错误时的错误值,客户端验证...实验15中将学习如何在验证失败,填充值。 1. 创建 CreateEmployeeViewModel 类。...除了提示用户,是否可以在当前页面显示错误信息? 是可以得,只需要为每个错误创建span 标签,默认设置为不可见,当提交按钮点击,如果验证失败,使用JavaScript修改错误的可见性。...如果是非法用户,给当前的ModelState添加新的错误信息,将错误信息显示在View中。...临时Cookie会在浏览器关闭自动删除,永久Cookie不会被删除。可通过浏览器设置或是编写代码手动删除。 当凭证错误时,UserName 文本框的值是如何被重置的?

8.7K50

MVC3教程之实体模型和EF CodeFirst

在这个模板中,我们使用了Razor视图引擎,在Razor中,我们可以使用@model 用来指定传到视图的 Model 类型,访问传入视图的数据内容。...现在我们来实现这个Create视图,我们将在这个视图中向用户显示追加数据所需要用到的表单。在Create方法中点击鼠标右键,并点击上下文菜单中的“添加视图”。...这样可以减少开发者的代码编写量,同时也更加便于代码的维护。   ASP.NET MVC与EF code-first提供的默认验证规则就是一个实现DRY原则的很好的例子。...你也可以在模型类中显式地追加一个验证规则,然后在整个应用程序中都使用这个验证规则。   ...("", "修改失败,请查看详细错误信息:"+ ex.Message); } return View(newBook); }

1.3K20

Membership三步曲之入门篇 - Membership基础示例

还为我们默认配置了一个MembershipProvider(我们下面会说这个东西,这里暂时忽略也没有关系) 2.2 添加功能代码   虽然说我们建立的这个项目已经配置好了Membership,但是并没有地方去使用它...ValidateAntiForgeryToken] public ActionResult LogOff() { FormsAuthentication.SignOut(); return RedirectToAction...ValidateAntiForgeryToken] public ActionResult LogOff() { FormsAuthentication.SignOut(); return RedirectToAction...接下来我们就可以在代码中使用User.IsInRole方法是看用户是否具有某一个角色的权限了。...我们使用了EF需要使用User entity怎么办?又或者角色是有父子关系的又该如何做呢?我们后面的进阶篇将会告诉你答案。

92260

【ASP.NET Core 基础知识】--MVC框架--Models和数据绑定

这些例子展示了如何在控制器的动作方法中使用数据绑定特性,从不同的来源获取数据。...通过在前端进行验证,用户能够更早地得知输入错误,而不是等到提交表单后才得知。 降低后期成本: 在开发阶段实施强大的数据验证可以降低维护和修复错误的成本。...return View(model); } } 返回验证错误信息: 在服务器端验证失败,通常需要将相应的错误信息返回给用户。这可以通过在 ModelState 对象中添加错误消息来实现。...辅助方法或手动检查 ModelState 来显示验证错误消息。...如果验证失败,会将用户重定向回原始表单页面,并显示相应的错误消息;如果验证成功,用户将被重定向到 Success 页面。 这个简单的例子涵盖了基本的模型和绑定概念,以及如何在控制器和视图中使用它们。

45410

对于个人(注册表)与团队(团队表)(两张表没有关联)的展示与可空判断

4,将界面传回来的GroupName通过查询获得GroupId(因为数据库存储的是GroupId,GroupName只是自己定义的为了临时展示用的) 使用方式的方式调用: 方法为: private void...ActionResult Create(RegistratorMessageModel model, bool continueEditing) { if (ModelState.IsValid...("Edit", new { id = Info.Id }); } return RedirectToAction("List");...GroupNameIcon(model);//团队标识名称 return View(model); }  上面这种做法有一个问题就是:如何在添加或者编辑的时候出现了还没有存在数据库团队名称...所以不建议才有公共里面的方法 使用这种判断方式:先判断在团队存在的是否存在的前提下,再在去查询匹配数据库,进而判断是否赋值 if (entity.GroupId !

64640

Asp.Net MVC +EntityFramework主从表新增编辑操作的实现(删除操作怎么实现?)

功能: 查询页面上可以单击新增和编辑进行对数据维护 页面的结构是上部是维护表头,下部的Table是现实子表数据,对子表数据的维护使用bootstrap popup modal的方式操作。...(order); _unitOfWork.SaveChanges(); DisplaySuccessMessage("Has append a Order record"); //return RedirectToAction...JS完成对行的操作,但在对编辑现有表体数据出现了问题。...后来注销掉了@*@Html.Partial("_OrderDetailForm")*@ 现在还有非常棘手的问题就是如何进行删除操作,一旦在编辑状态下,把其中一个表体的记录删掉,删除后就没办法把数据提交到后台...,而不删添加一个删除标志,这同样也会带来很多操作,如Table 在laod数据还要把带删除标志的行筛选掉,又要添加好多代码 不知道你们是否有很好的解决方案

1.8K80

OpenLDAP使用BDB的一些配置和维护方法

这个缓存是openldap自己维护的,与bdb库无关。   为了提高效率bdb在修改数据库,是先修改内存里面的,然后分批回写到数据库文件里面。...因此并不推荐使用该选项。 二、维护   1) 数据库和日志的归档(或者叫备份)   有两种备份方法     a)标准备份     这种备份方法,要求是在备份的时候停止对数据库的写操作。...正常恢复是,当数据库文件和日志文件都没有被损坏,执行db_recover,不要带参数。...当采用热备份的方法所做的备份,必段要用热恢复的方法来恢复   热恢复是,当数据库文件或者日志文件损坏,在热备份的备份目录下,执行db_recover -c 来恢复数据。

2K20

使用PyTorch,最常见的4个错误

这篇文章将逐点分析这些错误如何在PyTorch代码示例中体现出来的。...直到我们完成,StopIteration被触发。在这个循环中,我们只需要调用next, next, next… 。...data loader的例子: for batch_idx, (data, target) in enumerate(train_loader): # training code here 下面是如何修改这个循环来使用...常用的错误 3: 忘记在.backward()之前进行.zero_grad() 当在 “loss”张量上调用 “backward” ,你是在告诉PyTorch从loss往回走,并计算每个权重对损失的影响有多少...在backward的时候不使用zero_grad的一个原因是,如果你每次调用step() 都要多次调用backward,例如,如果你每个batch只能将一个样本放入内存中,那么一个梯度会噪声太大,你想要在每个

1.5K30

如何系统维护好网站?这款错误监控平台不可缺少

当我们在运营一个网站,尤其是技术产品是基于网站的情况下,如何确保网站运营正常,如何先于用户获知网页崩溃、异常信息,如何从技术层面上监控并及时解决错误信息,如何通过对页面的各项收集数据来进行系统分析,从而有助于更好地规划产品命脉...或被植入病毒; 8、页面性能监控,包含 DNS 时间, DOM 渲染时间等信息,可以组合计算出首屏时间以及白屏时间; 9、事件流,可以了解异常发生的上下文环境,帮助测试部门快速复现错误; 10、近实时的分析结果...FrontJS 如何使用? 光说不练假把式,现在我们就来一睹 FrontJS 的真容。...「页面访问」提供了可筛选的页面统计,从访问量、加载时间、停留时间等排列展示,帮助大家了解并进行维护。 「日报」和「趋势」是就整体统计的分类查看。...总之, FrontJS 是一款技术人员必不可少的网页错误监控工具,修复问题、维护网站、改善用户体验,来 FrontJS 开启优化网页体验之旅吧。

1K60

一步一步创建ASP.NET MVC5程序(八)

, `CreatedIp` varchar(24) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '创建用户的...LatestLoginIp` varchar(24) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '最近一次登录的...t.ToString("x2")); } return strBuilder.ToString(); } } } 在用户注册或者登录,...我们将使用这个MD5加密用户的密码,并将其保存到数据库中(数据库中保存明文的密码是非常危险的,特别是在重要的安全级别很高的项目中,千(不)万(信)别(你)这(试)样(一)做(下)!!!)。...} } } 添加必要JS库 由于之前我们将项目中的多余的JS库全部移除掉了,所以现在我们重新安装一下我们项目中将要到的一些JS库,包括:jQuery,Bootstrap等,都使用Nuget来安装

1.3K60

使用 React Hooks 要避免的6个错误

image.png 今天来看看在使用React hooks的一些坑,以及如何正确的使用避免这些坑。...问题概览: 不要改变 hooks 的调用顺序; 不要使用旧的状态; 不要创建旧的闭包; 不要忘记清理副作用; 不要在不需要重新渲染使用useState; 不要缺少useEffect依赖。 1....因为当id为空,组件会提示,并直接退出。如果id存在,就会调用useState和useEffect这两个hook。这样有条件的执行钩子时就可能会导致意外并且难以调试的错误。...不要在不需要重新渲染使用useState 在React hooks 中,我们可以使用useState hook来进行状态的管理。虽然使用起来比较简单,但是如果使用不恰当,就可能会出现意想不到的问题。...可以看到,状态变量counter并没有在渲染阶段使用。所以,每次点击第一个按钮,都会有不需要的重新渲染。 ​

2.3K00
领券