【问题标题】:Handle Icollection within controller and View在控制器和视图中处理 Icollection
【发布时间】:2012-08-07 07:49:14
【问题描述】:

我有一个像这样的 2 个样本模型(我已经输入了我想要的字段)

[Table("TripAllocation", Schema = "dbo")]
public class TripAllocation
{
    public int TripAllocationId { get; set; }
    public ICollection<Requisition> Requisitions { get; set; }

}


[Table("Requisition", Schema = "dbo")]
public class Requisition
{
    [Key]
    public int RequisitionId { get; set; }

    public int? TripAllocationId { get; set; }
    public TripAllocation TripAllocation { get; set; }

}

所以现在我想通过 TripAllocation 表在 Requisition 表中选择 TripAllocationId 的值。我不想通过在申请视图中创建 driodownlist 来做到这一点。

我想从 TripAllocation 表中执行此操作并添加 TripAllocationId 的申请列表。

那么我怎样才能通过使用 MVC 处理控制器和视图来做到这一点。

(当我创建旅行时,应将申请列表应用于一个 AllocationTripId)

【问题讨论】:

    标签: asp.net-mvc list icollection


    【解决方案1】:

    我不知道我是否完全理解您的问题,但听起来您希望您的视图显示通过TripAllocationId 搜索的申请列表?

    首先,根据您的代码示例,我的一个假设是您正在使用我已经有一段时间没有使用过的 LINQ-to-SQL,如果我的代码示例不是 100% 完整,请原谅我。但基本上,您只需要使用DataContext 在TripAllocation 上急切加载Requisitions。您的控制器方法如下所示:

    public ActionResult Requisitions(string id)
    {
        TripAllocation allocation;
        List<Requisition> requisitions;
    
        using (var context = new MyDataContext)
        {
            allocation = context.TripAllocations.SingleOrDefault(c => c.TripAllocationId == id);
            requisitions = allocation.Requisitions.ToList();
        }
    
        return View(requisitions);
    }
    

    如果我正确理解了您的问题,您将向控制器方法传递 TripAllocationId,它将使用 LINQ-to-SQL 导航对象图并返回到视图 List&lt;Requisition&gt;。

    【讨论】:

    • 这基本上就是我想要的。当我通过旅行分配创建旅行分配时。我想为 TripAllocation 的一份原始申请添加一些申请列表。 (但我可以在创建申请时简单地做,我可以通过在申请创建视图中创建一个下拉列表来为申请的一个瞬间添加一个 TripAllocation。但这不是我想要的。我想做与此相反的操作)跨度>
    【解决方案2】:

    这基本上就是我想要的。当我通过旅行分配创建旅行分配时。我想为 TripAllocation 的一份原始申请添加一些申请列表。 (但我可以在创建申请时简单地做,我可以通过在申请创建视图中创建一个下拉列表来为申请的一个瞬间添加一个 TripAllocation。但这不是我想要的。我想做与此相反的操作)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      相关资源
      最近更新 更多