私はasp.netコアを初めて使用しています。私は読んできましたが、フォームのデータをフォームの後ろにコードとしてポストメソッドでサブミットする方法を知っています。それはいいです。しかし、オブジェクトのリストを送るのはどうですか?私がする必要があるのは、(この例では、ホテル管理室のタイプとレートタイプの場合)グリッドのようなもので、客室タイプのリストがあり、それぞれにレートタイプのリストがあります。これどうやってするの?私はそれをしたように、私は部屋の名前の名前を通過することができます(ただし、1つのオブジェクトとしてのみ)が、任意のレートです。asp.netコア2.0のクライアント側からオブジェクトのリストを取得
public class RateType
{
public string Name { get; set; }
public bool IsActive { get; set; }
}
public class RoomType
{
public string Name { get; set; }
public List<RateType> Rates { get; set; } = new List<RateType>();
}
にHomeControllerで
:
public IActionResult RoomConfig()
{
return View(room);
}
[HttpGet]
public ViewResult SaveRoomConfig()
{
return View("RoomConfig");
}
[HttpPost]
public ViewResult SaveRoomConfig(RoomType room)
{
return View("RoomConfig");
}
とビューで:
は私が(モデル)このようにそれを持っているので、
@model RoomType
@{
ViewData["Title"] = "RoomConfig";
}
<h2>@Model.Name</h2>
<form class="p-a-1" asp-action="SaveRoomConfig" method="post">
@foreach (var item in Model.Rates)
{
<label asp-for="Name">@item.Name </label>
<input class="form-control" asp-for="Name" />
<input asp-for="@item.IsActive" type="checkbox" />
}
<button type="submit">Send</button>
</form>
、私は最初のオブジェクトを送信しますテスト用に事前定義された値がいくつかあり、それらはページに表示されます。しかし、「送信」をクリックすると、最初のオブジェクトのみを送信できます(オブジェクトパラメータがあるため、最初のオブジェクトのみを送信することができます)。それでも、ルームタイプのリストを入れてみましたオブジェクトのリストを他のオブジェクトのリスト(ネストされたもの)で渡すこれは可能ですか?それを渡す可能性があるだけでは意味がありません唯一のオブジェクトです。