c# MVC -在删除项目时保持Webgrid中的排序方向、列和分页

本文关键字:方向 排序 分页 Webgrid MVC 删除项目 | 更新日期: 2023-09-27 18:11:34

对于列名,页面和排序目录使用路由值是否是一种好方法,或者是否有更好的方法来保持webgrid设置存活?

当前是这样的:

@Html.ActionLink("Delete", "DeleteEntry", new { id = item.Id, sortdir, sort = webgrid.SortColumn }, new { @class = "LoeschenImgStyle", onclick = "return confirm('You're sure?');" })

我的控制器方法是这样的

public ActionResult DeleteEntry(Guid id, string sortdir, string sort)
{
    _einheitenRepository.DeleteIt(id);
    return RedirectToAction("Index", new { sortdir, sort });
}

是否有更好的选择来做同样的事情?

谢谢:)

c# MVC -在删除项目时保持Webgrid中的排序方向、列和分页

您已经拥有的并没有什么真正的问题,但是您可以通过使用Model来代替这些参数来稍微清理它。首先可以有一个包含分页信息的基本模型,如:

public abstract class ModelBase
{
    public string SortDir { get; set; }
    public string Sort { get; set; }
}

那么对于这个实例(假设它是一个项目),你可以有这样的模型:

public class ItemModel : ModelBase
{
    public int Id { get; set; }
    //rest of the properties in your ItemModel
}

那么你的ActionResult将看起来更干净,像这样:

public ActionResult DeleteEntry(ItemModel model)

您的ActionLink可以填充该模型,通过以下操作:

Html.ActionLink("Delete", "DeleteEntry", new { Id = item.Id, SortDir, Sort = webgrid.SortColumn }, new { @class = "LoeschenImgStyle", onclick = "return confirm('You're sure?');" })

那么,您每次都会得到一个自动填充的模型实例,从而避免在操作方法中添加过长的参数列表。