是否可以使用表单填充数据模型并将其从Razorpage发送到控制器



使用Razorpage上的表单填充数据模型实例字段的最佳方式是什么?是否可以直接从Razorpage实例化并提交模型,或者我必须读取表单的每个单独字段并将它们分配给控制器中的模型实例?

目前我正在做这样的事情:(不是我的实际代码(

视图中:

<form method="post" action="some_action">
<input type="text" name="name" />
<input type="submit" value="submit" />
</form>

在控制器中:

[HttpPost("some_action")]
Public IActionResult create_using_form()
{
person p = new person();
p.name = Request.Form["name"];
/*do whatever with person, like save to a db*/
return view();
}

我想有一个更好的解决方案,不用一个接一个地填充person对象上的每个字段。有什么建议吗?

您不需要单独处理表单中的每个字段。只需通过使用@model定义数据模型来使用强类型视图。


假设您有数据模型类DataModel

然后是捷径:

public IActionResult Index()
{
return View(new DataModel());
}
[HttpPost("some_action")]
public IActionResult create_using_form(DataModel model)
{
if (ModelState.IsValid)
{
//...
}
return View("Index", model);
}

Html.EditorForModel()助手是在ASP.NET Framework MVC中开发的,但它仍然在ASP.NET Core MVC中实现。Html.EditorForModel()为模型中的每个属性返回一个HTML输入元素。

@model DataModel 
<form method="post" action="some_action">
@Html.EditorForModel()
<input type="submit" value="OK" />
</form>

最新更新