从View触发一个操作方法



我有一个类似的操作方法

[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()
{
...
}

相关内容

最新更新