使用 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 物件上的每個欄位。有什么建議嗎?
uj5u.com熱心網友回復:
您不需要單獨處理表單中的每個欄位。只需通過使用@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);
}
幫助程式是在 ASP.NET Framework MVC 中開發的Html.EditorForModel(),但它仍然在 ASP.NET Core MVC 中實作。為模型中的Html.EditorForModel()每個屬性回傳一個 HTML 輸入元素。
@model DataModel
<form method="post" action="some_action">
@Html.EditorForModel()
<input type="submit" value="OK" />
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/520067.html
上一篇:為什么GooglePlacesAPI的附近搜索結果超出指定范圍?
下一篇:鏈接where子句回傳0個物件
