Item
是一个模型类,Items
是一个控制器类。现在我尝试使用带参数的反向路由,但它失败了。怎么解决?
视图:
@(item: Item)
<a href="@routes.Items.delete(@item.id)">delete</a>
路线:
GET /items/$id<[0-9]+> controllers.Items.show(id: Long)
GET /items/add controllers.Fruits.addForm()
POST /items/add controllers.Items.add()
DELETE /items/$id<[0-9]+> controllers.Fruits.delete(id: Long)
我得到的错误
illegal start of simple expression
并指向第二个@
字符
答案 0 :(得分:3)
也可以将评论中的讨论带到实际的答案中。你的代码没有编译,因为你在参数中有一个额外的@
。
至于为什么你没有达到DELETE终点是因为你不能有一个常规的HTML链接触发GET以外的动词,你只能提交表格到POST。如果要调用delete,则需要使用JavaScript。例如,您可以使用jQuery的ajax
方法,类型设置为"DELETE"
。在您的情况下,您可以创建一个onclick
处理程序,该处理程序又发送一个ajax请求。另请注意,并非所有浏览器都支持DELETE动词。