課題07(5/5) 注意 以下の設問はリアクションペーパーに「課題07」という節を設けて, 課題名の見出しを付けて 回答すること.これらはすべて課題点として成績に算入される課題である . 【課題7-05】「多」側の入力 【課題7-04】 のウェブアプリには,新たな「車種」を登録するための
アクションとして,HogeというコントローラーにCreate
というアクションがあると仮定する.
このCreate
アクション(GET用)は入力フォームを表示するためのアクションで,
_ に示すような処理が含まれている
( フォームからの送信を受け付けるアクションは別に定義されている ).
HogeコントローラーのCreateアクション(GET用) 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// (usingディレクティブなどは省略)
namespace SomeApp.Controllers
{
public class HogeController : Controller
{
private readonly SomeAppContext _context ; // データコンテキストクラス
// ..略..
// Createアクション(GET用)
public IActionResult Create ()
{
ViewBag . Xyzzy = ( from c in _context . Manufacturers
orderby d . Id ascending
select new SelectListItem () { Value = d . Id . ToString (), Text = d . CorporateName }). ToList ();
return View ( new CarLine ());
}
// ..略..
} // end of class HogeController
} // end of namespace
SomeAppContext
クラスはこのアプリのデータコンテキストクラスであり,また13行目でアクセスしている
.Manufacturers
プロパティは「メーカー」のエンティティに対応するプロパティである.
このアクションに対応するビューは_ のようになっている.「メーカー」は
ドロップダウンリストで入力させるという前提である.空欄に適切なコードを回答せよ.
Views/Hoge/Create.cshtmlの内容 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@{
ViewData["Title"] = "新規車種の登録";
if (Model is null) throw new ArgumentNullException(nameof(Model)); // ad-hoc! 非null保証のための回避策
}
@model CarLine
< form asp-action = "Create" >
@* 名前のための入力欄 *@
< label asp-for = "@Model.Name" ></ label > :
< input asp-for = "@Model.Name" />
< span asp-validation-for = "@Model.Name" ></ span >
< br />
@* メーカーのための入力欄 *@
< label asp-for = "@Model./******** 空欄1 ********/" ></ label >
< select /******** 空欄2 ********/" ></ select >
< span asp-validation-for = "@Model./******** 空欄1 ********/" ></ span >
< br />
@* ..中略.. *@
< input type = "submit" value = "送信" />
</ form >
< a asp-action = "Index" > 一覧に戻る</ a >
@section Scripts
{
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
Last updated on 2024-06-10 Published on 2024-06-10