【问题标题】:How to call void functions from view .Net Core如何从视图.Net Core 调用 void 函数
【发布时间】:2021-01-07 06:40:32
【问题描述】:

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

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

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

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);
    }

没有反馈/确认用户只需直接运行查询并重新加载页面。 我如何做到这一点?

【问题讨论】:

  • 嗨@iamaaarianme,你想实现什么,点击按钮然后重定向到另一个带有消息的视图?
  • 嗨。我想在单击该按钮并刷新页面时更新数据库。通常会有一个表单,我会在控制器中获得 post 方法,但这里它是一个按钮,仅此而已。就像 winform 中的按钮单击事件一样。我是 asp 新手,我迷路了
  • 如果没有表单,你可以用&lt;a&gt;代替&lt;button&gt;,你仍然可以使用css class="btn btn-info mt-3"让它看起来像一个按钮
  • 添加asp-route-* 标签助手,查看我更新的答案。

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


【解决方案1】:

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

查看(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 });
    }
}

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2011-02-01
    • 2021-06-29
    相关资源
    最近更新 更多