情况的快速摘要:
@{ ViewBag.Title = "Index"; AjaxOptions options = new AjaxOptions(); options.HttpMethod = "POST"; } ... @Ajax.ActionLink("Linkname","CreateChallenge",new { challengedId = Model.UserId },options);
比我的控制器:
[Authorize] [HttpPost] public string CreateChallenge(string challengedId) { ChallengeRepository.CreateChallenge(challengedId); return "Sendend!"; }
单击链接时出现“未找到资源”错误,但是当我删除[HttpPost]属性时,一切正常.但我想要一个POST方法.我环顾四周,发现了一些类似的问题,但没有一个解决方案适合我.
解决方法
UPDATE
说得太快,记得你需要jQuery.Ajax.Unobtrusive http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/包
说得太快,记得你需要jQuery.Ajax.Unobtrusive http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/包
如果你安装它并在你的视图中引用它应该工作,它是我的OOTB测试:)
我自己做了一个快速测试,似乎你无法使用Ajax.ActionLink发出POST请求,即使你在AjaxOptions中设置POST也会执行GET.如果您使用fiddlr来监控流量,则可以看到此信息.
您还可以使用Chrome的Postman扩展程序对其进行测试,您会看到操作方法实际上与POST时的行为方式相同.但是你得到404因为它实际上是一个GET
如果是我,我会用jQuery来做这个帖子.你可以在这里看到更多http://api.jquery.com/jquery.ajax/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。