ASP.NET MVC 控制器操作仅限于特定视图

ASP.NET MVC controller action restricted to a specific view

有没有办法限制只能从特定视图访问控制器操作?我的数据库中有一个查询实体的详细信息页面,基本上是通过一个按钮和一个简单的 JS 确认提示,我想更改此对象的一些属性并将其保存回数据库。我开发了一个控制器操作方法来完成这项工作,但我不知道如何限制对它的访问,因此用户不能(无意)通过在浏览器中传递特定的 url 来修改实体。我希望只能通过按指定按钮在此特定详细信息页面上访问该操作。 我尝试使用 [ChildActionOnly] 但它只能从另一个操作方法访问,而不是视图。

感谢您的帮助。

多亏了 Stephen Muecke 的评论,我才让它运行起来。

该按钮是一个简单的 Action Link,它重定向到受限的控制器操作:

public ActionResult ReturnBook(int id)
    {
        if (Request.UrlReferrer == null)
        {
            return HttpNotFound();
        }

        //code
    }

该方法检查是否存在 UrlReferrer。在浏览器中键入 action url 会导致 referrer 为空。 如果调用是由 ActionLink 从视图进行的,则 UrlReferrer 不为空,并且可以选择检查其 属性 Request.UrlReferrer.AbsolutePath 并将其与所需的 url 进行比较,只能从中进行调用。在我的例子中,因为我没有在我的代码中的任何其他地方调用这个方法,所以我只使用 null/notnull 条件。