首页 > 解决方案 > 如何从视图.Net Core 调用 void 函数

问题描述

我有一个应该运行 SQL 查询的按钮。

  <button class="btn btn-info mt-3"asp-controller="MessageCenter" asp-action="Markmessage">Mark</button>

没有表格或任何类型的东西我可以使用 a post methodfor。这是我要调用的函数(顺便说一下,这是在我的控制器中)。

public void Markmessage()
    {

        Messagelookupinfo messagelookup = new Messagelookupinfo();
        SqlConnection sql = new SqlConnection();
        SqlConnection sqlcon = new SqlConnection("data source");
        sqlcon.Open();
        SqlCommand sqlcom = new SqlCommand("update messages set messagestatus='MARKED' where messageid=" + messagelookup.Messageid, sqlcon);
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        RedirectToAction("Messagelookup", "Messageid=" + messagelookup.Messageid);
    }

用户没有反馈/确认,只需直接运行查询并重新加载页面。我如何实现这一目标?

标签: asp.netasp.net-coreasp.net-core-mvc

解决方案


我做了一个简单的例子,你可以参考一下。

查看(Messagelookup.cshtml):

@{
    ViewData["Title"] = "Messagelookup";
}

<h1>Messagelookup</h1>

<div>
    <label>MessageId:</label>
    <h2>@ViewBag.MessageId</h2>
</div>
<a class="btn btn-info mt-3" asp-controller="MessageCenter" asp-action="Markmessage" asp-route-messageid="2">Mark</a>

控制器:

public class MessageCenterController : Controller
{
    public IActionResult Messagelookup(int? Messageid)
    {
        ViewBag.Messageid = Messageid;
        return View();
    }

    public IActionResult Markmessage(int? messageid)
    {
        return RedirectToAction("Messagelookup", new { Messageid = messageid });
    }
}

结果:

在此处输入图像描述


推荐阅读