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

如果字段值已失效,如何将字段值保留在ASP.NET MVC表单中?

在ASP.NET MVC中,如果字段值已失效,可以通过以下方法将字段值保留在表单中:

  1. 使用ModelState对象:在控制器中,可以使用ModelState对象来保存和检索表单字段的值。当表单提交时,MVC框架会自动将表单字段的值存储在ModelState对象中。在视图中,可以使用HtmlHelper扩展方法来检索ModelState中的字段值,并将其设置为表单字段的默认值。例如:
代码语言:csharp
复制
// 在控制器中
[HttpPost]
public ActionResult MyAction(MyModel model)
{
    // 处理表单提交逻辑

    // 如果发生验证错误,将字段值保存在ModelState中
    if (!ModelState.IsValid)
    {
        ModelState["FieldName"].Value = new ValueProviderResult("fieldValue", "fieldValue", CultureInfo.InvariantCulture);
    }

    return View(model);
}

// 在视图中
@Html.TextBoxFor(m => m.FieldName, new { @value = ViewData.ModelState["FieldName"].Value?.AttemptedValue })
  1. 使用TempData对象:TempData是一个字典对象,用于在请求之间传递临时数据。可以使用TempData来保存表单字段的值,并在下一个请求中检索它们。例如:
代码语言:csharp
复制
// 在控制器中
[HttpPost]
public ActionResult MyAction(MyModel model)
{
    // 处理表单提交逻辑

    // 如果发生验证错误,将字段值保存在TempData中
    if (!ModelState.IsValid)
    {
        TempData["FieldName"] = "fieldValue";
    }

    return RedirectToAction("MyAction");
}

// 在视图中
@{
    var fieldValue = TempData["FieldName"] as string;
}
@Html.TextBoxFor(m => m.FieldName, new { @value = fieldValue })

以上是两种常用的方法来保留字段值在ASP.NET MVC表单中。根据具体的需求和场景,选择适合的方法来实现字段值的保留。

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

相关·内容

.NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记

; MVC Endpoint 22.jpg 模型绑定 什么是模型绑定 来源有哪些 复杂的数据绑定 ASP.NET Core 的模型绑定:https://docs.microsoft.com/zh-cn...例如,路由数据可以提供一个记录键,而发布的表单域可以为模型的属性提供一个。 编写代码以检索这些,并将其从字符串转换为 .NET 类型不仅繁琐,而且还容易出错。 模型绑定会自动化该过程。...[FromRoute] -从路由数据获取值。 [FromForm] -从发布的表单字段获取值。 [FromBody] -从请求正文中获取值。...id, [FromQuery] string name,[FromHeader] string termId) { return Ok(new {id, name, termId}); } 从发布的表单字段获取值...[Range]:验证属性是否在指定的范围内。 [RegularExpression]:验证属性是否与指定的正则表达式匹配。 [Required]:验证字段是否不为 null。

2.6K11

.NET 云原生架构师训练营(模块二 基础巩固 MVC终结点)--学习笔记

模型绑定 什么是模型绑定 来源有哪些 复杂的数据绑定 ASP.NET Core 的模型绑定:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models...例如,路由数据可以提供一个记录键,而发布的表单域可以为模型的属性提供一个。编写代码以检索这些,并将其从字符串转换为 .NET 类型不仅繁琐,而且还容易出错。 模型绑定会自动化该过程。...[FromRoute] -从路由数据获取值。 [FromForm] -从发布的表单字段获取值。 [FromBody] -从请求正文中获取值。...id, [FromQuery] string name,[FromHeader] string termId) { return Ok(new {id, name, termId}); } 从发布的表单字段获取值...[Range]:验证属性是否在指定的范围内。 [RegularExpression]:验证属性是否与指定的正则表达式匹配。 [Required]:验证字段是否不为 null。

2.5K10
  • ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇

    那么在本篇文章,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Identity 进行身份验证(Authentication)以及联合ASP.NET MVC 基于角色的授权...FormsAuthenticationModule 处理,而Katana重写了表单身份验证,所以有必要比较一下传统ASP.NET MVC & Web Form 下表单身份验证与OWIN下表单身份验证的区别...3.使用Authorize特性进行授权 ASP.NET Identity已经集成到了ASP.NET Framework,在ASP.NET MVC ,我们可以使用Authorize 特性进行授权,如下代码所示...接下来,就是让存在的Cookie 失效,并产生新Cookie。...它 包含如下重要的操作: SignIn(options,identity) 故名思意登录,用来产生身份验证过后的Cookie SignOut() 故名思意登出,让存在的Cookie 失效 SignIn

    3.5K60

    ASP.NET MVC下的四种验证编程方式

    我们在一个ASP.NET MVC应用定义了如下一个Person类作为被验证的数据类型,它的Name、Gender和Age三个属性分别表示一个人的姓名、性别和年龄。...实际上这也是ASP.NET MVC的Model验证系统默认支持的编程方式。...具体的验证实现在重写的IsValid方法如果被验证的在这个列表,则视为验证成功并返回True。为了提供一个友好的错误消息,我们重写了方法FormatErrorMessage。...由于ASP.NET MVC会自动提取应用在绑定参数类型上的ValidationAttribute特性对绑定的参数实施自动化验证,所以我们根本不需要在具体的Action方法来对参数作手工验证。...四、让数据类型实现IDataErrorInfo接口 上面我们让数据类型实现IValidatableObject接口并将具体的验证逻辑定义在实现的Validate方法,这样的类型能够被ASP.NET MVC

    1.4K80

    .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRFCSRF)攻击处理

    如果在服务器集群需配置 ASP.NET Core Data Protection,有关详细信息,请参阅 Configuring data protection。...在ASP.NET Core MVC 2.0或更高版本,FormTagHelper为HTML表单元素注入防伪造令牌。...所有在ASP.NET Core MVC 和 Razor 页模板表单都会生成 antiforgery 令牌。...FormFieldName 防伪系统用于呈现防伪令牌在视图中的隐藏的窗体字段的名称。 HeaderName 防伪系统使用的标头的名称。 如果null,系统会认为只有窗体数据。...ASP.NET Core MVC在Ajax处理跨站请求伪造(XSRF/CSRF)的注意事项 ValidateAntiForgeryToken 在进行Token验证的时候Token是从Form里面取的。

    4K20

    ASP.NET MVC编程——模型

    验证模型绑定成功与否 使用ModelState.IsValid 获取表单数据 为获得表单数据,使用类型为FormCollection的参数作为操作参数。...当操作带有参数时,MVC框架使用模型绑定器(默认的或自定义的)在Http请求查找数据,用于构建控制器操作的参数列表。 验证发生的时间 模型验证是在操作执行之前完成的。...当模型绑定器使用新对模型属性更新后,会利用当前模型元数据获得模型验证器,模型验证器会找到所有施加于模型属性的特性并执行验证逻辑,然后模型绑定器会捕获所有失败的验证规则,并将它们放入模型状态。...ASP.NET MVC4 Web编程 2.Jon Galloway/Phil Haack/Brad Wilson/K....Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

    2.4K80

    Asp.Net MVC4入门指南(6):验证编辑方法和编辑视图

    如果不带参数调用Edit 方法,ID 参数被指定为默认 零。如果找不到一部电影,则返回HttpNotFound 。...如果form发送的不是有效的,它们将重新显示在form。Edit.cshtml视图模板的Html.ValidationMessageFor Helper将用来显示相应的错误消息。...显示筛选的电影。 如果您更改SearchIndex方法的签名,改为参数id,在Global.asax文件设置的默认路由将使得: id参数将匹配{id}占位符。...现在,搜索字符串信息作为窗体字段,发送到服务器。这意味着您不能在 URL 捕获此搜索信息,以添加书签或发送给朋友。...在下一节,您将看到如何将属性添加到Movie模型,以及如何添加一个初始设定并自动创建一个测试数据库。

    4.3K100

    ASP.NET Core教程【三】实体字段属性、链接标签、并发数据异常、文件上传及读取

    前文索引: ASP.NET Core教程【二】从保存数据看Razor Page的特有属性与服务端验证 ASP.NET Core教程【一】关于Razor Page的知识 实体字段属性 再来看看我们的实体类.../overview/older-versions/mvc-music-store/mvc-music-store-part-6 链接标签 在上一篇文章我们简单说了一下链接标签,再来看第一章中提到的这个场景...如果这个时候你请求这个地址: http://localhost:5000/Movies/Details 并没有传入ID的,那么服务器会返回404, 如果你的设计是希望ID是一个可选的传入参数,那么你可以把.../Index");} 上面代码DbUpdateConcurrencyException就是专门针对这种异常定义的异常类; NotFound方法将返回404异常 文件上传及读取 如果你想上传一个文件,可以撰写如下...,UploadPublicSchedule是一个IFormFile类型的字段; 当表单提交后,ASP.NET CORE 也会把文件流绑定到这个字段上; 如果上传的是一个文本文件,那么我们看看怎么直接读取这个文本文件

    1.6K60

    了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult

    [本文已经同步到《How ASP.NET MVC Works?》...在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用定义一个ShoppingCart类表示购物车。...Action方法ProcessOrder用于处理提交的购买订单,如果订购商品的数量没有超过库存量(通过一个静态字典字段stock表示),则通过调用alert函数提示“购物订单成功处理”,否则提示“库存不足...在一个以Ajax请求提交的表单表单的Action属性对应着上面定义的Action方法ProcessOrder)显示了购物车的商品和数量,用于可以修改订购数量并通过点击“提交订单”按钮以Ajax请求的方式提交订单...MVC几种ActionResult的本质:EmptyResult & ContentResult 了解ASP.NET MVC几种ActionResult的本质:FileResult 了解ASP.NET

    1.7K50

    了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult

    [本文已经同步到《How ASP.NET MVC Works?》...在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用定义一个ShoppingCart类表示购物车。...Action方法ProcessOrder用于处理提交的购买订单,如果订购商品的数量没有超过库存量(通过一个静态字典字段stock表示),则通过调用alert函数提示“购物订单成功处理”,否则提示“库存不足...在一个以Ajax请求提交的表单表单的Action属性对应着上面定义的Action方法ProcessOrder)显示了购物车的商品和数量,用于可以修改订购数量并通过点击“提交订单”按钮以Ajax请求的方式提交订单...MVC几种ActionResult的本质:EmptyResult & ContentResult 了解ASP.NET MVC几种ActionResult的本质:FileResult 了解ASP.NET

    1.7K80

    ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)

    如果不带参数调用Edit 方法,ID 参数被指定为默认 零。如果找不到一部电影,则返回HttpNotFound 。...一旦客户端验证确定某个字段是无效的,将显示出现错误消息。如果禁用JavaScript,则不会有客户端验证,但服务器将检测回传的是无效的,而且将重新显示表单与错误消息。...现在,搜索字符串信息作为窗体字段,发送到服务器。这意味着您不能在 URL 捕获此搜索信息,以添加书签或发送给朋友。...ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5 - 控制器 3. ASP.NET MVC 5 - 视图 4. ...ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view) 9. ASP.NET MVC 5 - 给电影表和模型添加新字段 10.

    6.7K110

    Asp.Net MVC4入门指南(8):给数据模型添加校验器

    Title 和Genre 字段不再可以为 null (即,您必须输入一个) 并且Rating 字段具有最大长度是 5。 验证属性将指定一个验证行为,这样您可以指定模型的那个属性需要被强制验证。...Required属性指示该属性必须有一个 ,在此示例,一部电影必须要有Title、 ReleaseDate、Genre和Price属性的,这样才有效。Range属性限制了一个指定范围内的。...在窗体填写一些无效,然后单击Create按钮。 ?...您可能已经注意到了Title 和Genre属性,在字段输入文本或者删除文本,是不会执行所需的验证属性的,直到您提交表单 (点Create按钮)时才执行。...在不输入任何字段的情况下,直接点击提交按钮,将触发客户端验证。直到没有客户端验证错误的情况下,表单数据才会发送到服务器。

    4.6K100

    ASP.NET MVC编程——验证、授权与安全

    1 验证 一般采用表单验证完成登陆验证,建议结合SSL使用。...然后检验是否可匿名访问,如果可以匿名访问就不进行验证; 综合以上分析,扩展AuthorizeAttribute要注意: 1)在子类AuthorizeCore,调用父类的AuthorizeCore方法...方法向用户浏览器cookie写入一个加密的数据,并在表单内插入一个隐藏栏位,每次刷新页面时隐藏栏位的都不同,每次执行控制器操作前,都会验证隐藏栏位和浏览器cookie是否相同,只有相同才允许执行控制器操作...ASP.NET MVC4 Web编程 2.Jon Galloway/Phil Haack/Brad Wilson/K....Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

    3.1K60

    【译】.NET Core 3.0 Preview 3关于ASP.NET Core的更新内容

    HandleValidSubmit() 22: { 23: Console.WriteLine("OnValidSubmit"); 24: } 25: } 如果将此表单添加到应用程序...,并运行它,你将获得一个基本表单,该表单字段更改和表单提交时自动进行字段输入的验证。...EditForm将EditContext设置为一个级联相关的,该用于跟踪关于编辑过程的元数据(例如,修改的内容、当前验证消息等)。...其中一些具有有用的分析逻辑(例如,InputDate和InputNumber将不可解析的注册为验证错误,这样可以优雅地处理它们)。相关字段还支持目标字段的可空性(例如,int?)。...ASP.NET Core应用程序包括配置的Identity Server实例,可是让Angular应用程序很方面的对用户进行身份验证,并针对ASP.NET Core应用程序的受保护资源发送HTTP请求

    22.6K10

    ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器

    一、校验 — 表单不是你想提想提就能提 1.1 DataAnnotations(数据注解)   位于 System.ComponentModel.DataAnnotations 命名空间中的特性指定对数据模型的各个字段的验证...在DataAnnotations为我们所提供的众多内置验证特性,用的最多的其中的四个是:   (0)[DisplayName]:显示名 – 定义表单字段的提示名称   (1)[Required] :必须...– 表示这个属性是必须提供内容的字段   (2)[StringLength]:字符串长度 – 定义字符串类型的属性的最大长度   (3)[Range]:范围 – 为数字类型的属性提供最大和最小   ...(4)[RegularExpression]:正则表达式 – 指定动态数据的数据字段必须与指定的正则表达式匹配  1.2 使用DataAnnotations为Model进行校验   假设我们的Model...三、为AOP而生 — ASP.Net MVC默认的过滤器 3.1 过滤器初步   大一点的项目总会有相关的AOP面向切面的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中Action在执行前或者执行后我们想做一些特殊的操作

    2.1K20

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

    1.2 创建Models类 在ASP.NET Core MVC创建Models类通常是通过定义C#类来表示应用程序的数据结构。...如果未提供,会产生验证错误。...Person 类是模型,其属性 FirstName、LastName 和 Age 与表单的输入字段相匹配。...表单中使用 asp-for 和 asp-validation-for 辅助方法来生成输入字段和验证错误消息。这将与模型绑定器协同工作,确保表单数据正确地绑定到 Person 对象。...如果验证失败,会将用户重定向回原始表单页面,并显示相应的错误消息;如果验证成功,用户将被重定向到 Success 页面。 这个简单的例子涵盖了基本的模型和绑定概念,以及如何在控制器和视图中使用它们。

    52210
    领券