繁体   English   中英

MVC控制器动作后如何返回视图?

[英]How to return view after mvc controller action?

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

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

Webgrid 视图包括调用我的控制器并随其发送参数 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>

处理删除部分的控制器:

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

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

在此处输入图片说明

取而代之的是,我只希望返回更新后的 webgrid 表的视图。

希望任何人都可以提供帮助!

代替

return Content(o.ToString());

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

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

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

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

您可以使用 Visual Studio 中的自动脚手架构建来自动执行 CRUD,然后对其进行自定义。

JObject o = JObject.FromObject(response);
return Content(o.ToString());

你应该返回一个视图而不是返回一个 Json 对象。 Json 只是一个带有数据的集合。

示例: return View("~/Views/SpecificView.cshtml")

您应该使用该特定的ViewModel --> 视图的模型来提供数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM