【问题标题】:MVC: How to submit a Parent ViewModel inplace of a Child ViewModel formMVC:如何提交父 ViewModel 代替子 ViewModel 表单
【发布时间】:2014-12-17 21:55:31
【问题描述】:

我有一个 QueueViewModel,里面有一个 ItemViewModels 列表。在我看来,每个 ItemViewModel 都有自己的 形式。

public class QueueViewModel
{
    public List<ItemViewModel> Items { get; set; }

    public ItemViewModel SelectedItem { get; set; }

    public List<strings> ListOfStringsIneed { get; set; }

    public int PageNumber { get; set; }
}

public class ItemViewModel
{
    public int ItemID { get; set; }

    public string RandomInfo { get; set; }
}

提交 ItemViewModel 表单后,我希望将该特定项目的值添加到父 QueueViewModel 的 SelectedItem 字段,然后将 QueueViewModel POST 到控制器。

在不将父 QueueViewModel 作为隐藏字段包含在每个表单中的情况下,这样做的好方法是什么?

【问题讨论】:

    标签: c# jquery asp.net-mvc forms


    【解决方案1】:

    您可以在ItemViewModel中包含父关系,例如

    public class ItemViewModel { public int QueueId { get; set; } }
    

    然后在您的后端控制器中,您知道如何创建整个父级。

    这里的重点是利用您的持久层并减轻 HTTP 的一些负载。

    【讨论】:

    • 我之前一直在使用 session 来存储 QueueViewModel,但最近决定删除 session。我将不得不查找有关持久层的更多信息,因为我不知道。
    • 你的持久层就是你的数据库。另一种选择是在 Web 层缓存,即 HttpContext.Cache
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 2017-03-14
    • 1970-01-01
    相关资源
    最近更新 更多