加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax.ActionLink POST在ASP.NET MVC 5中不起作用

发布时间:2020-12-16 02:53:47 所属栏目:百科 来源:网络整理
导读:情况的快速摘要: 在我的视图中,我有这片Razor代码: @{ViewBag.Title = "Index";AjaxOptions options = new AjaxOptions();options.HttpMethod = "POST";}...@Ajax.ActionLink("Linkname","CreateChallenge",new { challengedId = Model.UserId },options);
情况的快速摘要:

在我的视图中,我有这片Razor代码:

@{
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/包

如果你安装它并在你的视图中引用它应该工作,它是我的OOTB测试:)

我自己做了一个快速测试,似乎你无法使用Ajax.ActionLink发出POST请求,即使你在AjaxOptions中设置POST也会执行GET.如果您使用fiddlr来监控流量,则可以看到此信息.

您还可以使用Chrome的Postman扩展程序对其进行测试,您会看到操作方法实际上与POST时的行为方式相同.但是你得到404因为它实际上是一个GET

如果是我,我会用jQuery来做这个帖子.你可以在这里看到更多http://api.jquery.com/jquery.ajax/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读