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

MVC3:在 GET 请求中没有为 ModelState 设置文化?

MVC3(Model-View-Controller 3)是一种软件设计模式,它是一个基于 ASP.NET 的 Web 开发框架,用于创建可扩展、可维护和可测试的 Web 应用程序。MVC3 包括以下三个主要组件:

  1. Model(模型):负责处理应用程序的数据和业务逻辑。
  2. View(视图):负责显示模型中的数据。
  3. Controller(控制器):负责处理用户输入、调用模型中的操作并将结果传递给视图。

问题中提到的“MVC3:在 GET 请求中没有为 ModelState 设置文化?”是指在使用 MVC3 框架时,在处理 GET 请求时,ModelState 中可能没有包含文化信息。ModelState 是一个字典,用于存储模型绑定和验证过程中产生的错误和值。

为了解决这个问题,可以在控制器中设置文化信息。可以在控制器的基类中添加以下代码:

代码语言:csharp
复制
protected override void Initialize(RequestContext requestContext)
{
    base.Initialize(requestContext);
    string culture = Request.QueryString["culture"];
    if (!string.IsNullOrEmpty(culture))
    {
        Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(culture);
        Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(culture);
    }
}

这段代码会从查询字符串中获取文化信息,并将其设置为当前线程的文化信息。这样,在处理 GET 请求时,ModelState 中就会包含文化信息了。

推荐的腾讯云相关产品:

  1. 腾讯云 CVM(云服务器):提供高性能、可扩展的云服务器,可以用于部署和运行 MVC3 应用程序。
  2. 腾讯云 CDB(云数据库):提供 MySQL、SQL Server、PostgreSQL 等多种数据库服务,可以用于存储 MVC3 应用程序的数据。
  3. 腾讯云 CDN(内容分发网络):可以加速 MVC3 应用程序的访问速度,提高用户体验。
  4. 腾讯云 API 网关:可以帮助开发者管理、部署、维护和扩展 API,可以与 MVC3 应用程序结合使用。

产品介绍链接地址:

  1. 腾讯云 CVM:https://cloud.tencent.com/product/cvm
  2. 腾讯云 CDB:https://cloud.tencent.com/product/cdb
  3. 腾讯云 CDN:https://cloud.tencent.com/product/cdn
  4. 腾讯云 API 网关:https://cloud.tencent.com/product/apigateway
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

再说表单验证,Web Api中使用ModelState进行接口参数验证

认识ModelState 我们都知道MVC中使用ModelState实现表单验证非常简单,借助jquery.validate.unobtrusive这个插件就能轻松的页面上输出错误信息,详细的介绍可以参考这篇文章...《[Asp.net MVC]Asp.net MVC5系列--模型添加验证规则》。...但是WebApi没有视图页让我们来展示错误信息,那要怎么捕获到验证失败的信息并作为请求结果返回给请求端呢?...Value装的就这个字段的值,具体就是一个ValueProviderResult,具体里面是什么就不贴代码了,因为有什么和本文太大关系,自己回去偷偷看就好了。...用swagger的接口调式工具发起请求,得到响应如下: ? CodeValue也是空的但是没有返回错误信息,是因为取错误信息的时候取到第一条后就break了。

2.3K50

MVC 3.0 的新特性 摘要

ASP.NET MVC3 ,增加视图的对话框中允许你选择你希望的视图引擎,新建项目对话框,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark,...属性,允许通过后绑定的字典将数据传送给视图模板, MVC3 ,你可以通过 ViewBag 来更加简单的完成。... MVC3 ,已经不再需要了,因为默认就会启用客户端验证。可以 web.config 关闭。...在请求验证的粒度控制 ASP.NET MVC 内建了请求验证机制来自动帮助处理类似跨站攻击和 HTML 注入等等。...实际上,有时你希望能够显式关闭请求的验证,例如你希望允许用户提交 HTML 内容,例如在内容管理系统,现在你可以通过增加 AllowHtml 标签到 Model 或者视图的 Model 来支持绑定的时候基于一个属性关闭请求验证

2.5K10

用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

由于PUT是对资源的整体修改,请求body应该带着更新对象,所以先建立这个对象: ?...注意这个是DbContext的方法而不是DbSet的方法,它会追踪city,然后把它的ModelState设置为Modified。 测试: ? OK....HTTP方法适用总结 常用的5HTTP方法都介绍了,下面总结一下: GET(获取资源): GET api/countries,返回200,集合数据;找不到数据返回 404。...body里面带回去 为EFCore的Model添加约束 我之前还没有为EFCore的model添加约束,这里我添加上(由于我使用的是内存数据库,所以下面的约束是不起作用的,这些约束只有关系型数据库才起作用...每当请求进入到这个方法的时候,都会验证我们刚刚定义Resource上的这些约束,如果其中一个约束没有达标,则ModelState的IsValid属性就会是false;此外如果传进来的属性类型和定义的不符

1.8K20

从头编写 asp.net core 2.0 web api 基础框架 (2)

运行程序试验一下, 注意需要在Headers里面设置Content-Type: application/json. 结果如图: ? 返回的状态是201. 看一下那一堆Headers: ?...Validation 验证 针对上面的Post方法,  如果请求没有Body, 参数product就会是null, 这个我们已经判断了; 如果body里面的数据所包含的属性product不存在, 那么这个属性就会被忽略...每次请求进到Action的时候, 我们ProductCreationModel添加的那些注解的验证, 就会被检查....只要其中有一个验证没通过, 那么ModelState.IsValid属性就是False. 可以设置断点查看ModelState里面都有哪些东西....Description被设置成null. 这就是HTTP PUT标准的本意: 整体修改, 更新所有属性, 尽管你的代码可能不这么做.

1.6K80

ExtJs四(ExtJs MVC登录窗口的调试)

要动态加载登录窗口,需要先设置好加载路径,因而在onReady函数前面加入以下代码: Ext.Loader.setConfig({ enabled: true, paths: {...接着上面的代码下加入一个请求登录窗口的代码: Ext.require('Ext.ux.Login'); 这样,Ext就会自动去加载登录窗口了。...但问题是鼠标指针不是手型的,这得改一下,要改不难,创建Img对象的时候,加入style配置项就可以了,它会将该配置的值作为图片的样式,修改后的代码如下: me.image = Ext.create(...代码通过遍历ModelState不能通过验证的字段,将其加入到errors对象。...(ModelState,errors); } 现在要考虑怎么返回这个errors对象,解决办法是WriteJobjectResult方法加一个类型为JObject的对象,并添加以下代码: if(errors

4.4K20

ExtJs四(ExtJs MVC登录窗口的调试)

要动态加载登录窗口,需要先设置好加载路径,因而在onReady函数前面加入以下代码: Ext.Loader.setConfig({ enabled: true, paths: {...接着上面的代码下加入一个请求登录窗口的代码: Ext.require('Ext.ux.Login'); 这样,Ext就会自动去加载登录窗口了。...但问题是鼠标指针不是手型的,这得改一下,要改不难,创建Img对象的时候,加入style配置项就可以了,它会将该配置的值作为图片的样式,修改后的代码如下: me.image = Ext.create(...代码通过遍历ModelState不能通过验证的字段,将其加入到errors对象。...(ModelState,errors); } 现在要考虑怎么返回这个errors对象,解决办法是WriteJobjectResult方法加一个类型为JObject的对象,并添加以下代码: if(errors

2.6K40

Model验证系统运行机制是如何实现的?

] 目录 一、从ModelState谈起 二、实例演示:验证Model绑定过程对ModelError的设置 三、验证消息的呈现     HtmlHelper.ValidationMessage...基于HTTP-GET的Action方法Index我们创建一个Contact对象并使用默认的View将其呈现出来。...我们知道输出的ModelState的值是Model绑定过程通过ValueProvider提供的,而伴随着Model绑定的验证则会根据验证的结果对ModelState的ModelError进行设置。...而ModelState列表属于ViewData的一部分,所以可以直接在View中被使用,这对错误信息View的呈现提供了可能。现在我们就来讨论验证信息View的呈现问题。...我们可以看到当excludePropertyErrors参数被设置为True的时候,ValidationSummary只会呈现出Key为空字符串的ModelState的错误消息。 ?

1.8K110

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

系列文章第一讲,我们已经知道,Web编程模式不是事件驱动的编程模式,是请求响应模式。最终用户会产生发送请求。...测试保存和取消功能 关于实验11 实验11为什么将保存和取消按钮设置为同名? 日常使用,点击提交按钮之后,请求会被发送到服务器端,所有输入控件的值都将被发送。提交按钮也是输入按钮的一种。...当保存按钮被点击时,保存按钮的值也会随着请求被发送到服务器端,当点击取消按钮时,取消按钮的值”取消“会随着请求发送。 Action 方法,Model Binder 将维护这些工作。...当匹配成功时: 如果接收的值是空,则会将空值分配给属性,如果无法执行空值分配,会设置缺省值,ModelState.IsValid将设置为fasle。...如果空值分配成功,会考虑值是否合法,ModelState.IsValid将设置为fasle。 如果匹配不成功,参数会被设置为缺省值。本实验ModelState.IsValid不会受影响。 1.

5.2K100

这算是ASP.NET MVC的一个大BUG吗?

; set; } public string Bar { get; set; } public string Baz { get; set; } } 对于Action方法Index对应的...foo=123&bar=456&baz=789),我们可以看到界面上呈现出来的总是原始值,也就是说我们Action方法Index对原始数据的修改没有起到任何效果。 ?...如下所示,当InputHelper指定表单元素值得时候,会先从当前ModelState获取,如果该值ModelState不存在,才会从当前ViewData获取。...对于本例来说,ModelState的值是原始值,ViewData的值采用修改后的值。...不过我还是觉得这样的设计有违MVC的基本原则,MVC处理请求的流程很清楚:客户端(浏览器)向定义Controller的某个Action方法发送请求,Action方法处理这个请求,并呈现出相应的View

80880

如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出

您可以在他的文章中找到我本系列文章谈论的大部分内容,所以请查看!...原生请求日志 本节,首先让我们创建一个标准的ASP.NET Core 3.0的Razor pages应用,当然你也可以直接使用dotnet new webapp命令来进行创建。...鉴于静态文件中间件非常嘈杂,而且通常这是人们期望的行为(静态文件进行短路,不需要进行记录),但是如果您也希望记录对静态文件的请求,则可以管道serilog中间件移动到更早的位置。...您可以登录到seq的请求的以下图像中看到这一点。 默认情况下,我们确实会丢失一些信息。例如,不再记录终结点名称和Razor页面处理程序。在后续文章,我将展示如何将它们添加到摘要日志。...如果您已经使用Serilog,则非常容易启用。只需您的Startup.cs文件调用UseSerilogRequestLogging()。 当请求到达此中间件时,它将启动计时器。

1.6K10

小范笔记:ASP.NET Core API 基础知识与Axios前端提交数据

] 当前请求的路由数据 [FromServices] 作为操作参数插入的请求服务 来一张 Postman 的图片: HTTP 请求,会携带很多参数,这些参数可以在前端设置,例如表单、Header、...浏览器,按下 F12 打开控制台,点击 Console ,每次请求后,这里会打印请求结果和数据。 2, [FromBody] 官方文档解释:请求正文。...微软官方文档,对于[Bind] 的解释: [Bind] 属性可用于防止“创建”方案的过多发布情况 。...由于排除的属性设置为 NULL 或默认值,而不是保持不变,因此它在编辑方案无法很好地工作; 因为 Bind 特性将清除未在 某个 参数列出的字段的任何以前存在的数据。 一脸懵逼。...还是搞清楚。算了,不踩了。

5.5K00

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

(DataType.Date)] public DateTime ReleaseDate { get; set; } public string Genre { get; set...; Display属性标志这个字段页面上显示的时候,需要显示什么名字; 我们在上一篇文章中用到的: <label asp-for="Movie.Title" class="control-label"...如果这个时候你请求这个地址: http://localhost:5000/Movies/Details 并没有传入ID的值,那么服务器会返回404, 如果你的设计是希望ID是一个可选的传入参数,那么你可以把...并发数据异常 当一个用户删除了一个实体,另一个用户同时又要更新这个实体的话 第二个用户的请求就会抛出并发数据异常(这里姑且称作并发,微软官网就是这么说的),来看代码: public async Task...); 其中ModelState是PageModel特有的属性 本示例,用于给页面添加错误信息~

1.6K60

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

模型绑定系统: 从各种源(如路由数据、表单域和查询字符串)检索数据。 Razor方法参数和公共属性向控制器和页面提供数据。 将字符串数据转换为 .NET 类型。 更新复杂类型的属性。...[FromRoute] -从路由数据获取值。 [FromForm] -从已发布的表单字段获取值。 [FromBody] -从请求正文中获取值。...[Remote]:通过服务器上调用操作方法来验证客户端上的输入。...; set; } public string Name { get; set; } } ModelState [HttpPost] [Route("option/body")] public...//return NotFound(); return Ok(student); } 格式化响应数据 设置 ASP.NET Core Web API 响应数据的格式:https://docs.microsoft.com

2.5K11
领券