use*_*830 6 .net c# asp.net-core
让我说我有一个
<form method="post" action"/user/create">
<input type="text" name="FirstName" placeholder="FirstName" />
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
我想在我的action方法中访问我的输入值FirstName.
public IActionResult Create(IFormCollection form)
{
string FirstName = form.Keys["FirstName"];
return View();
}
Run Code Online (Sandbox Code Playgroud)
它给出错误"无法将[]索引应用于ICollection类型的表达式"
我知道我可以迭代并输入一个if语句,但我发现需要这么多代码.我刚刚开始学习c#,但在Node.js和Python中很容易获得表单的值,例如在节点中.
request.body.FirstName;
Run Code Online (Sandbox Code Playgroud)
而已.我正在寻找类似的东西,没有迭代或创建一个poco类.
谢谢.
mae*_*lin 12
你可以使用form["FirstName"]或form.Get("FirstName").
编辑:你提到过,你不想创建一个poco.但是,如果你有多个参数,请考虑一下:
原创内容:
我更喜欢创建一个类(如person,具有FirstName属性)并使用内置序列化的优势.
如果您的表单参数如下所示:
{
"FirstName": "John",
"LastName": "Doe"
}
Run Code Online (Sandbox Code Playgroud)
然后你的班级应该是:
public class Person {
public string FirstName {get;set;}
public string LastName {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
你的创建方法应该是这样的
public IActionResult Create([FromForm]Person p)
{
string FirstName = p.FirstName;
}
Run Code Online (Sandbox Code Playgroud)
它会自动将表单参数解析为Person对象.
什么干净的阅读形式params,不是吗;-)?
| 归档时间: |
|
| 查看次数: |
6161 次 |
| 最近记录: |