我可以将服务器端事件处理程序添加到Razorpages中的链接

时间:2018-05-23 12:46:21

标签: asp.net-mvc action inline razor-pages

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

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

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

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

1 个答案:

答案 0 :(得分:1)

第一:现在没有办法做到这一点。但是有一些工作。

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

如果您真的希望客户端代码改变您的DB,您必须使用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 />

您将更改网址,并且必须重定向回原始网页。