0

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

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

谢谢 :)

4

1 回答 1

1

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

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?');" })

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

于 2013-04-30T12:01:54.807 回答