我有一个类似的操作方法
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin()
{
string provider = "";
string returnUrl = null;
if (returnUrl.IsNullOrWhiteSpace())
{
returnUrl = Request.RawUrl;
}
// Request a redirect to the external login provider
return new ChallengeResult(provider,
Url.SurfaceAction<UmbracoIdentityAccountController>("ExternalLoginCallback", new { ReturnUrl = returnUrl }));
}
我想在渲染特定视图时触发此方法。我试过一些类似的东西
@Html.Action("ExternalLogin", "UmbracoIdentityAccount");
但是这抛出了一个错误
A public action method 'ExternalLogin' was not found on controller
有人能指出什么是正确的方法吗?
ASP.NET MVCAntiForgeryToken
通过HTTP PUT进行设计。
@Html.Action()
使用[HttpGet]
方法,而不是定义ExternalLogin
时的[HttpPost]
方法。
因此,更简单的方法是将动作方法定义更改为:
[AllowAnonymous]
public ActionResult ExternalLogin()
{
...
}