我有一个显示在我的MVC Razor屏幕上的图书记录列表
1 edit delete Harry Potter 1
2 edit delete Harry Potter 2
..
3 edit delete Harry Potter 25
当用户点击[删除]链接时,控件将进入删除方法 控制器。然后显示MVC Razor屏幕,允许用户确认 删除(如果没有库存)或取消删除(如果存在库存)。
我的问题是“我应该在哪里检查库存”我应该在Razor视图中查看 声明如下:
@if (@Model.xxx.Count == 0) {
show the user a [confirm delete] button
}
@if (@Model.xxx.Count != 0) {
show the user a [cancel button] and a message saying "cannot delete"
}
在视图中执行所有操作似乎很笨,但控制器似乎并不是正确的位置,如果在控制器中,那么我不确定如何编写它。
答案 0 :(得分:3)
您应该在视图和控制器中查看库存:
答案 1 :(得分:2)
如果用户无法删除书籍,则不应首先显示删除链接。在用户实际尝试执行操作之前禁止用户执行任何操作,而不是让用户尝试执行您告诉他不能执行的操作,这样做更加用户友好。
所以基本上你需要在生成列表时进行Model.xxx.Count != 0
检查。但是,您仍需要在删除控制器中执行相同的验证,以避免对无效数据执行操作(正如您在任何控制器中所做的那样)。