与 Day20 重点差异的部份:
Controller 内 Action:
[HttpGet]
public IActionResult Case01()
{
// 透过 ViewBag 给定前端 Orderitem 空物件 !
ViewBag.EmptyItemJson = new OrderItem().ToJson();
var vm = new ViewModel
{
OrderDate = null,
// Array 先给定空阵列後,前端就可以不用额外处理 !
Items = Array.Empty<OrderItem>(),
};
return View(vm);
}
// ...
View :
加上新增订单项目
<th>
<button type="button"
v-on:click="add_item">
新增
</button>
</th>
加上删除订单项目
<td>
<button type="button"
v-on:click="del_item(index)">
删除
</button>
</td>
Vue 的部份
// ...
setup(){
// ...
const empty_item = @(Html.Raw(ViewBag.EmptyItemJson));
const add_item = function() {
const cloned_empty_item = JSON.parse(JSON.stringify(empty_item));
vue_model.Items?.push(cloned_empty_item);
}
const del_item = function(index) {
vue_model.Items?.splice(index, 1);
}
// ...
return {
// ...
add_item,
del_item,
// ...
}
}
// ...
这篇先到这里
因为不使用 Html Helper / Tag Helper,所以无法从 __RequestVerificationToken
取出 Antifogery Token
下一篇来看看另一种加上 Antiforgery Token 的做法 !
<<: [Day 08 - CSS Architecture] CSS设计模式,摆脱义大利面代码
>>: 初学者跪着学JavaScript Day6 :template literals和 tagged template literals傻傻分不清楚
前言 如果是从上一篇来的读者可能会很奇怪,不是说要用爬虫抓三大法人资料吗?怎麽换标题了,而且连题目的...
Intent+Bundle Intent常用於画面的跳转,也就是Activity之间的切换,而在In...
Q1. HG 是什麽? Mercurial 是一种轻量级分散式版本控制系统,由於 Mercuial ...
第二个范例将以心血管疾病的Dataset进行说明如何执行training、tracking与serv...
前言 Hi,铁人赛第二天,跟大家聊聊沟通,预计会陆续写几篇相关的主题,今天来分享平时的观察。 在敏捷...