Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >.net内核为什么我可以单独通过key获取IFormCollection

.net内核为什么我可以单独通过key获取IFormCollection
EN

Stack Overflow用户
提问于 2017-08-17 03:02:40
回答 2查看 17.4K关注 0票数 13

假设我有一个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form method="post" action"/user/create">
    <input type="text" name="FirstName" placeholder="FirstName" />
    <button type="submit">Submit</button>
</form>

我想在我的操作方法中访问输入值FirstName。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public IActionResult Create(IFormCollection form)
{
    string FirstName = form.Keys["FirstName"];
    return View();
}

它给出了一个错误"Cannot apply indexing with [] to an expresion of type ICollection“

我知道我可以迭代并放置一个if语句,但我发现这需要太多的代码。我刚开始学习c#,但在Node.js和Python语言中,获取表单post值非常容易,例如在节点中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
request.body.FirstName;

就是这样。我正在寻找一些类似的东西,没有迭代或创建一个poco类。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-18 13:40:01

简单的答案

您可以使用form["FirstName"]form.Get("FirstName")

edit 你提到过,你不想创建一个poco。但是,如果您有多个参数,请考虑一下:

原创内容:

我更喜欢创建一个类(比如person,它有一个FirstName属性),并使用内置序列化的优点。

如果您的表单参数如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "FirstName": "John",
  "LastName": "Doe"
}

那么你的类应该是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Person {
  public string FirstName {get;set;}
  public string LastName {get;set;}
}

您的Create方法应该如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public IActionResult Create([FromForm]Person p)
{
    string FirstName = p.FirstName;
}

它会自动将表单参数解析到Person对象中。

读取表单参数是一种多么干净的方式,不是吗;-)?

票数 22
EN

Stack Overflow用户

发布于 2017-08-17 03:23:46

根据.NET API Catalog.,您可以使用

form["FirstName"]form.item["FirstName"]

通过迭代访问索引值。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45725952

复制
相关文章
Java 中通过 key 获取锁
本文我们将了解如何通过特定键获取锁,以保证该键上的操作的线程安全,并且不妨碍其他键。 一般来说,我们需要实现两个方法:
明明如月学长
2022/11/21
5770
Java 中通过 key 获取锁
本文我们将了解如何通过特定键获取锁,以保证该键上的操作的线程安全,并且不妨碍其他键。 一般来说,我们需要实现两个方法:
明明如月学长
2022/11/21
5330
让我们的ASP.NET MVC应用可以单独维护验证消息
在项目开发中,我们会使用到很多的描述性文字,比如验证消息、错误消息和确认消息等,让这些文本消息具有可维护性具有重要的意义。虽然我们可以将它们存储于资源文件中,并且ASP.NET的ValidationAttribute也对这种方式提供了原生的支持。但是资源文件的每个条目仅仅是简单的键-值对,只能存储消息的文本值而已,在我们的项目开发中使用的是专门的一个维护消息的组件。在这篇文章中将会通过扩展现有的ValidationAttribute特性让ASP.NET MVC应用可以使用我们的消息组件来获取验证消息。[源代
蒋金楠
2018/01/15
7250
让我们的ASP.NET MVC应用可以单独维护验证消息
内核中通过进程PID获取进程的全部路径
我们遇到的Dos路径.如果想转化为NT路径(也就是 C:\xxxx)类似的格式 需要自己实现. 具体原理如下:
IBinary
2019/09/29
3.9K0
内核中通过进程PID获取进程的全部路径
为什么 @Value 可以获取配置中心的值?
由 AutowiredAnnotationBeanPostProcessor 负责来处理 @Value ,此外该类还负责处理 @Autowired 和 @Inject。
Coder小黑
2020/11/25
2.1K0
为什么 @Value 可以获取配置中心的值?
RedisTemplate批量获取Key
Redis scan 命令会获取重复的数据,所以这里使用Set集合 scan命令格式
itze
2022/10/31
1.5K0
Android Key获取方式
在很多情况下,比如应用百度SDK开发Android定位或者实现网页交互,均需要获取一个key来进行调试。简单说一下在Android studio和eclipse中如何获取key以及如何查看相关信息,笔者是在Mac下获取的,windows也一样。
全栈程序员站长
2022/09/15
8010
高云key的获取
因为申请了好几天的许可证没有下来,我得重新申请一下。。。。或者是我是散户,人家看不上我?一定是这样,我是散户,我是散户,我是散户。
云深无际
2021/01/07
1.5K0
高云key的获取
c#之dynamic类型通过属性获取值(get value by key)
即 d.GetType().GetProperty("value2").GetValue(d, null);注意这个写的时候没有代码提示,但是是可以的。
Vincent-yuan
2021/02/25
5.5K0
c#之dynamic类型通过属性获取值(get value by key)
Asp.Net WebAPI 通过HttpContextBase获取请求参数
WEBAPI中的Request是HttpRequestMessage类型,不能像Web传统那样有querystring和from 方法接收参数,而传统的HttpReqest的基类是HttpReqestBase
全栈程序员站长
2022/07/05
2.2K0
Asp.Net WebAPI 通过HttpContextBase获取请求参数
OpenWrt 通过Docker单独打包passwall ipk
我们知道,除去第一步需要在本地生成config文件外,我们可以通过Githab Action云编译的方式来实现整个固件的编译。
繁华是客
2023/03/03
5.4K0
为什么你可以通过注解来绑定UI(一)?
部落首领鲍勃每天起床第一件事就是跑到喜欢的媛媛家门口说一句:findViewById。。。
吴延宝
2018/09/10
4710
Python 字典key的获取
字典key的获取 []的获取方法 字典+中括号内传key , 不进行赋值操作` 即为获取 返回key对应的value值 内置函数get获取方法 功能 获取当前字典中指定key对应的value 用法 dict.get(key, default=None) 参数 key : 需要获取value的key default : key不存在则返回此默认值 , 默认是None , 我们也可以自定义(可以是任意类型) []与get的区别 []如果获取的key不存在, 则**直接报错** get如果获取的key不存在 ,
Zkeq
2022/05/18
1.8K0
【Python】字典 dict ③ ( 字典常用操作 | 获取字典全部键 Key | 通过获取全部 键 Key 进行遍历 | 直接对集合容器进行遍历 | 获取字典长度 )
调用 字典数据容器 的 keys() 函数 , 可以获取 字典 的 全部的 键 Key ; 获取的类型是 dict_keys 类型 ;
韩曙亮
2023/10/11
1.1K0
关于HashMap根据Value获取Key
Map中是一个key有且只有一个value. 但是一个value可以对应多个key值. 一般都是通过key,然后map.get(key)获得到value. 如果想要反向想通过value获得key的值,提供一下两种方法: 方法一: package cn.itcast.mapgetkey; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class HashMapDemo { //
乱码三千
2021/07/29
3.2K0
JS遍历对象,获取key:value
Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。
用户2323866
2021/06/24
28.5K0
获取没有设置TTL的key
在运维Redis的时候,总会遇到使用不规范的业务设计,比如没有对key设置ttl,进而导致内存空间吃紧,通常的解决方法是在slave上dump 出来所有的key ,然后对文件进行遍历再分析。遇到几十G的Redis实例,dump + 分析 会是一个比较耗时的操作,为此,我开发了一个小脚本直接连接Redis 进行scan 遍历所有的key,然后在检查key的ttl,将没有ttl的key输出到指定的文件里面。
用户1278550
2018/08/09
1.6K0
黑客可以通过发送信息从ATM机获取到现金
来自赛门铁克(Symantec)最新披露的消息,黑客能 够通过发送短信从ATM机获取到现金——这是通过首先将恶意程序加载到ATM设备中实现的。在本周一的报道中,赛门铁克将2013年10月在墨西哥爆发的 Ploutus恶意程序,通过CD-ROM和USB驱动器就非常轻易地将Ploutus上传到ATM设备中,罪犯要接入这些驱动器首先需要解锁,或者直接 在ATM机器外部钻孔。 赛门铁克安全研究人员Daniel Regalado在文章中提到:罪犯需要通过USB数据线将手机与ATM设备相连,并进行一些
安恒信息
2018/04/11
7240
mac获取maven-gpg-key
然后点https://keys.openpgp.org页面中的Upload进入keys.openpgp.org/upload
阿超
2023/09/09
3210
mac获取maven-gpg-key
?线程池为什么可以复用,我是蒙圈了。。。
好了,知道了线程池的几种状态和他们是如何转换的关系之后,我们来看一下 当我们提交一个任务时,线程池到底发生了什么?!
java小杰要加油
2021/05/13
5480
?线程池为什么可以复用,我是蒙圈了。。。

相似问题

ASP.NET核心2 IFormCollection返回StringValues

20

我可以合并这段关于IFormCollection,IQueryCollection扩展函数的代码吗

127

为什么通过id单独获取所有记录?

112

通过key jsonarray获取值

465

通过key AngularFire获取Object

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文