为什么基本的actionlink不允许您在控制器中发布HttpPost方法。这看起来很奇怪,因为你有效地从视图发回到控制器。
答案 0 :(得分:1)
ActionLink呈现锚点(标记)并将href属性设置为指向特定的控制器操作。点击这样的链接不是"从视图回发到控制器"正如你在问题中所述。而是浏览器执行GET请求。这是标准的浏览器行为。
可以将一个click事件处理程序添加到一个锚(或任何相关的元素),以防止默认的浏览器行为。然后,这样的事件处理程序可以执行POST请求来代替默认的GET请求。这基本上就是构建ASP.NET WebForms的方式。拦截与HTML元素的交互,并调用__doPostBack方法,然后发出POST请求。
总而言之,ActionLink方法只是渲染一个锚DOM元素,其默认职责是在点击时对href执行GET请求。