c# - 在 Asp.NET MVC 中排除空表单数据

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

我一直致力于两个项目之间的集成,一个是用 Java 编写的,另一个是用 Asp.NET MVC 编写的。

我意识到,当 HTML form 元素中有两个像这样的输入元素时:

<input type="hidden" value="1" name="helloWorld"/>
<input type="hidden" value name="helloWorld"/>

请注意,没有为第二个定义值,Asp.NET Request.Form["helloWorld"] 返回带有逗号的 1,,而 JSP 则不会t 包含该内容并仅返回 1,我认为这要么是 Asp.NET 中遗漏的问题,要么是有意的功能。

请问有办法解决这个问题吗?也许,就像 web.config 或其他地方的配置,或者可能是一个小属性,例如 ExcludeEmptyInputs 之类的?我正在考虑枚举 Request.Form 中的每个元素,并从像上面那样没有意义的值中删除额外的 , ,但我认为也许有一个更简单的方法更直观的方法。

注意:有些人可能会建议删除第二个输入,但这并不是一件容易的事情。所以我想得到关于我的第一个问题的答案。

最佳答案

NameValueCollection 将各种值合并在一起,以便在您使用 .Get() 或索引器 ([]) 时使用,但在涵盖它单独代表值。您可以使用 .GetValues() 获取包含所有值的数组。尝试:

string[] values = Request.Form.GetValues("helloWorld");

从那里,您应该能够根据您的目的以自己的方式删除空值。

关于c# - 在 Asp.NET MVC 中排除空表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27390051/

相关文章:

c# - 在 Web 应用程序中选择静态和实例数据访问类的优缺点是什么?

c# - 我应该使用什么控件来显示动态数据(图片、名称等),例如 ASP.NET 上的 html 表?

asp.net - ng-view 未将部分 View 加载到 index.cshtml

c# - 将嵌套的 JSON 反序列化为 C# 对象

c# - 如何模拟 Web 服务

c# - Razor mvc4 和 c# 代码隐藏

c# - 使用平铺 View 时在 C# ListView 中显示子项

c# - 在上传发生之前确保上传文件的文件大小小于 maxRequestLength?

.net - 在 IIS 服务器上的 PUT API 调用期间未触发 Application_BeginRequest

asp.net-mvc - Nhibernate/MVC : Dealing with lazy loaded collections in View