跟 Day06、Day08 范例差不多,重点差异如下:
於 Get 时,就给定 object colletion 的数量。
注:之後的范例会改动态的 !
[HttpGet]
public IActionResult Case01()
{
var vm = new ViewModel
{
OrderDate = null,
Items = Enumerable.Repeat(new OrderItem(), 3).ToArray()
};
return View(vm);
}
/// <summary>
/// 订单项目
/// </summary>
public class OrderItem
{
/// <summary>
/// 名称
/// </summary>
[Display(Name = "名称")]
public string Name { get; set; }
/// <summary>
/// 数量
/// </summary>
[Display(Name = "数量")]
public int? Quantity { get; set; }
}
改为使用 Html Helper
...
<table>
<thead>
<tr>
<th>@Html.LabelFor(m => m.Items.FirstOrDefault().Name)</th>
<th>@Html.LabelFor(m => m.Items.FirstOrDefault().Quantity)</th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Items?.Length; i++)
{
<tr>
<td>
@Html.TextBoxFor(m => Model.Items[i].Name)
</td>
<td>
@Html.TextBoxFor(m => Model.Items[i].Quantity, new { type = "number", step = 1, min = 0 })
</td>
</tr>
}
</tbody>
</table>
...
输入资料 & Submit 後,View Render 出来的结果
...
<tbody>
<tr>
<td>
<input id="Items_0__Name" name="Items[0].Name" type="text" value="a">
</td>
<td>
<input id="Items_0__Quantity" min="0" name="Items[0].Quantity" step="1" type="number" value="1">
</td>
</tr>
<tr>
<td>
<input id="Items_1__Name" name="Items[1].Name" type="text" value="b">
</td>
<td>
<input id="Items_1__Quantity" min="0" name="Items[1].Quantity" step="1" type="number" value="2">
</td>
</tr>
<tr>
<td>
<input id="Items_2__Name" name="Items[2].Name" type="text" value="c">
</td>
<td>
<input id="Items_2__Quantity" min="0" name="Items[2].Quantity" step="1" type="number" value="3">
</td>
</tr>
</tbody>
...
整体来看,就是把 Html 控制项的 name,当成 存取 ViewModel 的路径
例:Items[1].Quantity
就是指 ViewModel 的 Items Array > Index 为 1 之物件 > 物件的 Quantity Property
这篇先到这里,下一篇来看 Tag Helper 的部份 !
>>: D-21. & 、meta programming & Monkey patch
前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...
1.前言 前两篇使用到日常生活中使用率最高的通讯软件LINE Notify功能,不知道各位小夥伴是否...
那麽最一开始学一个程序语言的起手式想必不用我多说吧。 「Hello World!」 fn hello...
时间函数 世界各国表示时间的方式不一样,存储不方便,计算不方便,不同的时间表示方式影响,不利於沟通和...
My photoshop ver3.0 功能列表 # ------ My photoshop Rel...