让我说我有一个
<form method="post" action"/user/create">
<input type="text" name="FirstName" placeholder="FirstName" />
<button type="submit">Submit</button>
</form>
我想在我的操作方法中访问我的输入值FirstName。
public IActionResult Create(IFormCollection form)
{
string FirstName = form.Keys["FirstName"];
return View();
}
它给出了错误&#34;无法使用[]将索引应用于ICollection类型的表达&#34;
我知道我可以迭代并输入一个if语句,但我发现需要这么多代码。我刚刚开始学习c#,但在Node.js和Python中很容易获得表单的值,例如在节点中。
request.body.FirstName;
多数民众赞成。我正在寻找类似的东西,没有迭代或创建一个poco类。
感谢。
答案 0 :(得分:7)
您可以使用form["FirstName"]
或form.Get("FirstName")
。
编辑:您提到过,您不想创建一个poco。 但是,如果你有多个参数,请考虑一下:
原创内容:
我更喜欢创建一个类(比如person,它具有FirstName属性)并使用内置序列化的优势。
如果您的表单参数如下所示:
{
"FirstName": "John",
"LastName": "Doe"
}
然后你的班级应该是:
public class Person {
public string FirstName {get;set;}
public string LastName {get;set;}
}
你的创建方法应该是这样的
public IActionResult Create([FromForm]Person p)
{
string FirstName = p.FirstName;
}
它会自动将表单参数解析为Person对象。
阅读形式是一种干净的方式,不是吗? - )?
答案 1 :(得分:-1)