gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:49:32 25 4
gpt4 key购买 nike

情况的快速总结:

在我的 View 中,我有这段 Razor 代码:

@{
ViewBag.Title = "Index";

AjaxOptions options = new AjaxOptions();
options.HttpMethod = "POST";
}

...

@Ajax.ActionLink("Linkname", "CreateChallenge", new { challengedId = Model.UserId },options);

比在我的 Controller 中:
[Authorize]
[HttpPost]
public string CreateChallenge(string challengedId)
{
ChallengeRepository.CreateChallenge(challengedId);
return "Sendend!";
}

单击链接时出现“找不到资源”错误,但是当我删除 [HttpPost] 属性时,一切正常。但我想要一个 POST 方法。我环顾四周,发现了一些类似的问题,但没有一个解决方案对我有用。

最佳答案

更新
说得太早了,想起你需要jQuery.Ajax.Unobtrusive http://www.nuget.org/packages/jQuery.Ajax.Unobtrusive/包裹

如果你安装它并在你看来它应该工作时引用它,它是我的 OOTB 测试 :)

我自己做了一个快速测试,似乎您不能使用 Ajax.ActionLink 来发出 POST 请求,即使您在 AjaxOptions 中设置了 POST,它也会执行 GET。如果您使用 fiddlr 监控流量,您可以看到这一点。

你也可以使用 Chrome 的 Postman 扩展来测试它,你会看到 action 方法在你 POST 时实际上表现得像它应该的那样。但是你得到 404 因为它实际上做了一个 GET

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

关于Ajax.ActionLink POST 在 ASP.NET MVC 5 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20992559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com