【问题标题】:How do I seed my MVC model with HttpPostedFileBase type?如何使用 HttpPostedFileBase 类型播种我的 MVC 模型?
【发布时间】:2013-03-21 00:07:00
【问题描述】:

我已经搜索了这个答案的高低,但找不到任何东西......我是不是很傻?

    protected override void Seed(MyContext context)
    {
        context.Items.Add(new Item
        {
            URL = "my-url-field",
            Title = "My Title for this Item",
            Image = "some-image-file.jpg"  // this is httppostedfilebase  - how to seed this?
        });
    }

我想我必须实例化一个 httppostedfilebase 对象,但我该怎么做呢?

【问题讨论】:

    标签: asp.net-mvc seeding httppostedfilebase


    【解决方案1】:

    我认为HttpPostedFileBase 是您模型的错误属性。您可能希望将Image 属性作为byte[] - 这将存储在数据库中。如果你也需要文件名,你可以在Item上设置一个字符串属性

    那么,你的种子方法看起来像

    ...
    Image = File.ReadAllBytes("some-image-file.jpg"),
    Filename = "some-image-file.jpg"
    ...
    

    【讨论】:

    • 谢谢斯坦.... 我想我在某处弄错了。我认为 httppostedfilebase 会自动将文件上传作为编辑器中的输入。 byte[] 属性会将图像文件作为二进制文件存储在数据库中吗?我在想我可能应该只使用字符串类型的文件名属性。
    • 是的 - 如果您计划将实际文件数据存储在数据库中,则 byte[] 将适用。如果您正在上传文件,您的操作将需要 httppostedfilebase 来获取文件 - 但是这不应该是您的 EF 模型的一部分 - 这应该只是您的 ViewModel 的一部分
    • 明白。非常感谢您澄清所有这些问题。
    猜你喜欢
    • 1970-01-01
    • 2016-12-28
    • 2019-10-20
    • 1970-01-01
    • 2018-08-30
    • 2019-02-26
    • 2020-07-15
    • 2017-11-17
    • 2018-02-01
    相关资源
    最近更新 更多