C#MVC - 删除项目时,保持Webgrid中的排序方向,列和分页?

时间:2013-04-30 11:01:32

标签: c# asp.net-mvc razor webgrid

对列名,页面和排序目录使用路由值是一种好方法还是有更好的方法来保持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 });
}

是否有更好的替代品来做同样的事情?

谢谢:)

1 个答案:

答案 0 :(得分:1)

你已经拥有的东西并没有什么问题,但你可以通过使用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?');" })

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