对列名,页面和排序目录使用路由值是一种好方法还是有更好的方法来保持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 });
}
是否有更好的替代品来做同样的事情?
谢谢:)
答案 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?');" })
然后,您每次都会得到一个自动填充的模型实例,从而避免在操作方法中添加过长的参数列表。