我有一个名为Resend email的控制器函数。该函数应该只由支付函数调用,并且应该阻止直接访问,但当用户在该视图中时,用户应该能够重新加载该视图。
如何创建控制器功能来满足所有这些要求?(.NET Core MVC(
该函数应仅由支付函数调用,并应阻止直接访问
如果只想从另一个方法的代码中调用该方法/函数,而不是将其公开为操作方法,则可以将NonAction
属性应用于该方法,如下所示。
public IActionResult ConfirmAccount()
{
//...
//code logic here
//...
return ResendEmail();
}
[NonAction]
public IActionResult ResendEmail()
{
//return Ok("success");
//...
此外,正如@CodeCaster在评论中提到的,您可以在泛型类库等中定义函数/方法,而不是在控制器中。
如果有必要使控制器方法只能从另一个视图访问,则可以使用以下检查:
public IActionResult CalculateBallance(int id)
{
// Gets information about the URL of the client's previous request
// that linked to the current URL.
if (String.IsNullOrEmpty(Request.Headers["Referer"]))
{
return NotFound();
}
// TODO: ...
}