POST回传嵌套对象的非输入数据的最佳方法是什么?

时间:2019-05-02 10:03:48

标签: asp.net-mvc post

我正在使用MVC发布/重定向/获取模式。该模型具有一个名为“ Products”的列表属性,并且每个项目都有一个名为“ Images”的列表属性。问题出在POST方法中,所有非输入字段均为空。我尝试添加隐藏字段,它对于“产品”效果很好,但不适用于“图像”。无论如何,添加隐藏字段是唯一的解决方案吗?是否没有办法强制回发最初发送的所有数据? 这是模型定义:

public class ProductRequestMessage
{
    //...
    public List<ProductRequestEntry> Products { get; set; }
}

public class ProductRequestEntry
{
    //...
    public Product Product { get; set; }
}

public class Product
{
    //...
    public List<ImageData> Images { get; set; }
}

public class ImageData
{
    //...
    public string Url { get; set; }
}

1 个答案:

答案 0 :(得分:0)

这不是模型的问题。 HTML表单只会回传输入字段和隐藏字段。

此外,通过回发保留数据也不是一个好习惯。相反,您应该回发ID并在服务器端检索数据。然后合并重试的数据和发布的数据以构建模型。

这还将减小回发的大小,并使应用程序运行更快。