首页 > 解决方案 > 我可以将服务器端事件处理程序添加到 Razorpages 中的链接吗

问题描述

我在 Razorpages 中有一堆链接,用于使用 EF 更改 SQL 条目的状态。

<a>Set status 1</a>
<a>Set status 2</a>
<a>Set status 3</a>

我不想为模型中的每个状态创建一个操作,也不想添加任何路由。单击状态链接时,它应该运行我的 C# 代码并返回到同一页面。

是否可以在不添加页面处理程序的情况下在 razorpages 中触发内联操作?(即向执行内联代码的链接添加服务器端事件处理程序)

标签: asp.net-mvcactioninlinerazor-pages

解决方案


第一:不,现在有办法做到这一点。但是有解决方法。

如果您不想要多个操作,我建议您使用参数创建一个操作。

如果你真的希望客户端代码改变你的数据库,你必须走 JavaScript 路线并通过 JavaScript 访问你的数据库。

你有:

<a>Set status 1</a>

我建议:

<a href="serverUrl/home/SetStatus?param=1">Set status 1</a>

在您的家庭控制器中,(显然您可以更改控制器)

    public ActionResult SetStatus(int param)
    {
        //do what ever.

        return RedirectToAction("OriginalAction");
    }

如果您不希望它重定向到操作,那么您将使用 ajax 或其他东西来发布它。我这样做是为了在不改变视图的情况下发回客户的原始纬度和经度。如果你使用一个

<a />

您将要更改 URL,并且必须重定向回原始页面。


推荐阅读