c# - 如何在 MVC Controller 操作后返回 View ?

标签 c# asp.net model-view-controller webgrid

我创建了一个删除 webgrid 表中特定行的功能。这工作正常,但是当删除行时,我希望刷新 View 并显示实际数据(删除行后)。

这是我到目前为止得到的:

Webgrid View ,包括调用我的 Controller 并发送参数 ID 的链接标记。

<div class="col-lg-12 d-flex align-items-stretch">
            @grid.Table(tableStyle: "table table-responsive table-striped table-bordered",
                columns: grid.Columns(
                  grid.Column(columnName: "ApiRedirectID", header: "ID", format:@<text><div class="" data-id="@item.ApiRedirectID" data-propertyname="ApiRedirectID">@item.ApiRedirectID</div></text>),
                  grid.Column(columnName: "ApiName", header: "Name", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="ApiName">@item.ApiName</div></text>),
                  grid.Column(columnName: "Company.CompanyName", header: "Company Name", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="Company.CompanyName">@item.Company.CompanyName</div></text>),
                  grid.Column(columnName: "ApiURL2", header: "URL", format:@<text><div class="edit" data-id="@item.ApiRedirectID" data-propertyname="ApiURL2">@item.ApiURL2</div></text>),
                  grid.Column(columnName: "Delete", header: " ", format:@<a href="DeleteRow/@item.ApiRedirectID" class="display delete-btn"><span class="glyphicon glyphicon-remove" style="color:red;"></span></a>)
          )
     )

</div>

处理删除部分的 Controller :

public ActionResult DeleteRow(int id)
    {
        var status = false;
        var message = "";

        using (ConcurrentDBEntities db = new ConcurrentDBEntities())
        {
            var data = db.ApiRedirects.Find(id);
            if (data != null)
            {
                db.ApiRedirects.Remove(data);
                db.SaveChanges();
                status = true;
            }
            else
            {
                message = "Error!";
            }
            var response = new { id = id, status = status, message = message };
            JObject o = JObject.FromObject(response);
            return Content(o.ToString());
   }

这段代码工作正常,但是当我删除一行时,将返回以下内容:

enter image description here

我只想返回更新后的 webgrid 表的 View 。

希望大家能帮忙!

最佳答案

而不是

return Content(o.ToString());

请使用(如果列出所有对象的操作称为索引):

return RedirectToAction("Index", new { id = id, status = status, message = message });

并在您的索引操作中创建参数:

public ActionResult Index(int id = 0, int status = 0, string message = "") {}

您可以使用autoscaffolding在 Visual Studio 中构建自动执行 CRUD,然后自定义它。

关于c# - 如何在 MVC Controller 操作后返回 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56040106/

相关文章:

c# - 编译 `async` 代码所需的最少类型集是什么?

asp.net - 我可以在 Linux 服务器上托管 asp.net 网站吗?

c# - 远程调试客户端电脑

c# - 是否可以记录序列化从 Web 服务返回的对象所花费的时间?

asp.net - 在asp页面中显示来自另一个站点的网页

.net - 如何从用户控件引用母版页内容控件?

c# - 为什么脚手架没有按预期工作?

ios - 正则表达式在使用 MVC 设计模式的 iOS 应用程序中的什么位置?

spring - 使用 Spring MVC 3.0 和 @EJB 注释而没有映射名称?

c# - DataGridComboBoxColumn 不显示 SelectedItem