【问题标题】:Why can't I return an IPagedList to my Post action为什么我不能将 IPagedList 返回到我的 Post 操作
【发布时间】:2014-07-07 15:28:10
【问题描述】:

这在理论上听起来很简单(而且很可能是这样) 我使用@model IPagedList 从 Get ActionResult 获得了一个视图 作为模特。 我在视图上也有一个表单,当用户单击提交时,代码会跳转到发布操作, 但是,当我尝试将 IPagedList traclerlist 作为参数包含在 Post ActionResult 中时,它会引发错误。

“无法创建接口的实例”

尝试过 ICollection 和 IList 并得到相同的结果? 有任何想法吗?需要代码吗? 请注意,这是一个使用剃刀视图的 MVC 3 应用程序。

【问题讨论】:

    标签: c# asp.net-mvc-3


    【解决方案1】:

    想想模型绑定器在做什么。模型绑定器构造一个类的实例,然后使用表单值等来填充您的模型。您正在告诉模型绑定器构造一个接口的实例,这是它无法做到的。是否应该选择一个实现 IPagedList 的随机类?您希望它如何工作?

    【讨论】:

    • 好的,显然我需要努力理解接口。那么我最简单的方法是什么,如何将对象列表返回给我的 Post 操作?
    • 最简单的方法是让您的帖子操作使用您定义的实现 IPagedList 的类。
    • 您的意思是在 TrackerModel 类中添加以下内容?...public PagedList TrackerModels { get;放;并在控制器中使用...PagedList TrackerModels ??
    • 我不知道您的其余代码,但这听起来就像您想要的那样。您将使用实际的 PagedList 类而不是 IPagedList。
    • 或者我想,我将上面的内容放入我的代码中,我得到“没有为此对象定义无参数构造函数”,我的 get 操作的返回是 - “return View("SetMultipleStatus" , pagedList);”,其中 pagedList 被声明为“IPagedList pagedList = customerViewList.ToPagedList(filter.Page, filter.PageSize, totalRecords);”在动作中......那么为什么在提交表单时不会返回相同的帖子......使用 Post 动作参数“public ActionResult SetMultipleStatus(int? page, IPrincipal user, PagedList pagedList)”?
    【解决方案2】:

    IPagedList 是一个接口。您不能创建此类的实例。它旨在定义一个类供您继承。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2011-06-28
      • 2016-05-06
      相关资源
      最近更新 更多