ASP.NET MVC3从“局部视图”上载文件(并填充“模型”中的相应字段)

亚历克斯

我知道这个主题已经在SO和其他地方讨论,但是我找不到我的问题的答案。

我正在研究ASP.NET MVC3项目,并且我想创建一个包含的局部视图FileUpload在基本Create页面上会调用此局部视图,我希望上传的文件属于要创建的模型。只有当用户提交表单时,所选文件才会被上传。

这是代码的解释:


模型 ModelToCreate

public class ModelToCreate
{
    //Some properties

    public FileUploadModel Files { get; set; }
}


模型 FileUploadModel

public class FileUploadModel
{
    public IEnumerable<HttpPostedFileBase> Files { get; set; }
}


我的PartialView(_UploadFiles.cshtml)

@model Models.ModelToCreate

//I tried with Html.BeginForm(Create, MyController instead of null, null, but with no result.
@using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.TextBoxFor(m => m.Files, new { type = "file", name = "Files" })
}


局部视图的调用方式(通过Create.cshtml)

@Html.Partial("_UploadFiles")

我也尝试了使用@Html.Partial("_UploadFiles", Model),但没有结果...

当我单击中的Submit按钮时Create.cshtml,表单将提交到我的控制器,但其他Files字段始终是,null而其他数据都可以。

我想念什么吗?您能指出我的位置吗(为什么?)
谢谢!



更新(和解决方案)

这是一些我遗忘的其他信息,Create.cshtml该表格如下所示:

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "target-form" }))
{
    // Some fields, Textboxes and others CheckBoxes

    //Call to partial View
}

当我查看生成的源代码时,我在<form>标记中看到了局部视图...因此,我<tag>在中有一个<tag>,这是非法的并且被“忽略”。这导致了问题

解决方案:只需将此标签添加到以下对象的BeginForm中Create.cshtml

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "target-form", enctype = "multipart/form-data" }))

并以以下方式调用我的部分视图

@Html.Partial("_UploadFiles", Model)
扁桃体

好的,这会让它为您工作。

Create.cshtml 视图(将表单和提交移至部分视图之外)

@using(Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
   @Html.Partial("_UploadFiles", Model)
   <input type="submit" value="submit" />
}

_UploadFiles.cshtml 看法

@model ModelToCreate

@Html.TextBoxFor(m => m.Files.Files, new { type = "file", name = "Files" })

模型(更改为列表,并注意FileUploadModel构造函数中的初始化程序)。

public class ModelToCreate
{
    //Some properties
    public FileUploadModel Files { get; set; }
}

public class FileUploadModel
{
   public FileUploadModel()
   {
        Files = new List<HttpPostedFileBase>();
   }

   public List<HttpPostedFileBase> Files { get; set; }
}

控制器动作:

public ActionResult Create()
{
    var model = new ModelToCreate();

    return View(model);

}

[HttpPost]
public ActionResult Create(ModelToCreate model)
{
   var file = model.Files.Files[0];
   return View(model);
}

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC3从“局部视图”上载文件(并填充“模型”中的相应字段)

来自分类Dev

如何在ASP.NET MVC3中将值从局部视图传递到父视图

来自分类Dev

Asp.net mvc4在布局中具有模型的局部视图

来自分类Dev

ASP.NET MVC视图模型呈现

来自分类Dev

ASP.NET MVC视图模型呈现

来自分类Dev

如何在ASP.NET MVC中保持表单的异步上载文件?

来自分类Dev

如何在ASP.NET MVC中保持表单的异步上载文件?

来自分类Dev

ASP.NET MVC 将动态 Json 数据传递到模型中以在局部视图中返回

来自分类Dev

将由javascript创建的控件列表的值从视图传递到asp.net mvc3中的控制器

来自分类Dev

在视图 ASP.NET MVC 中添加字段

来自分类Dev

在ASP.Net Web Api 2中使用PUT动词上载文件

来自分类Dev

从ASP.NET中的另一台服务器上载文件

来自分类Dev

ASP.NET MVC项目的理想模型结构,用于处理多个局部视图

来自分类Dev

在ASP.NET MVC中填充DropDownList

来自分类Dev

在 ASP.NET MVC 中填充 DropDownList

来自分类Dev

Asp.net MVC3 Razor视图引擎,使用“ Multiline @:”转义几行文本?

来自分类Dev

ASP.NET MVC3:在解析视图之前触发了OnActionExecuted

来自分类Dev

ASP.NET MVC从不同的文件夹动态加载视图/局部视图

来自分类Dev

如何在ASP.NET MVC 3的视图模型中获取Dropdown SelectedItem文本

来自分类Dev

在 asp.net-mvc 中,检查 Site.Master 文件中是否存在局部视图的更快方法是什么?

来自分类Dev

ASP.NET MVC3验证类型名称错误

来自分类Dev

ASP.NET MVC3 Web应用程序

来自分类Dev

与MVC3和ASP.NET4.5异步

来自分类Dev

从ASP.NET MVC局部视图中调用JavaScript

来自分类Dev

asp.net mvc使用Java脚本渲染局部视图

来自分类Dev

Asp.Net Mvc渲染局部视图与淘汰赛

来自分类Dev

ASP.NET MVC在局部视图中加载脚本

来自分类Dev

ASP.net核心MVC局部视图无法卸载JS

来自分类Dev

asp.net mvc使用Java脚本渲染局部视图

Related 相关文章

  1. 1

    ASP.NET MVC3从“局部视图”上载文件(并填充“模型”中的相应字段)

  2. 2

    如何在ASP.NET MVC3中将值从局部视图传递到父视图

  3. 3

    Asp.net mvc4在布局中具有模型的局部视图

  4. 4

    ASP.NET MVC视图模型呈现

  5. 5

    ASP.NET MVC视图模型呈现

  6. 6

    如何在ASP.NET MVC中保持表单的异步上载文件?

  7. 7

    如何在ASP.NET MVC中保持表单的异步上载文件?

  8. 8

    ASP.NET MVC 将动态 Json 数据传递到模型中以在局部视图中返回

  9. 9

    将由javascript创建的控件列表的值从视图传递到asp.net mvc3中的控制器

  10. 10

    在视图 ASP.NET MVC 中添加字段

  11. 11

    在ASP.Net Web Api 2中使用PUT动词上载文件

  12. 12

    从ASP.NET中的另一台服务器上载文件

  13. 13

    ASP.NET MVC项目的理想模型结构,用于处理多个局部视图

  14. 14

    在ASP.NET MVC中填充DropDownList

  15. 15

    在 ASP.NET MVC 中填充 DropDownList

  16. 16

    Asp.net MVC3 Razor视图引擎,使用“ Multiline @:”转义几行文本?

  17. 17

    ASP.NET MVC3:在解析视图之前触发了OnActionExecuted

  18. 18

    ASP.NET MVC从不同的文件夹动态加载视图/局部视图

  19. 19

    如何在ASP.NET MVC 3的视图模型中获取Dropdown SelectedItem文本

  20. 20

    在 asp.net-mvc 中,检查 Site.Master 文件中是否存在局部视图的更快方法是什么?

  21. 21

    ASP.NET MVC3验证类型名称错误

  22. 22

    ASP.NET MVC3 Web应用程序

  23. 23

    与MVC3和ASP.NET4.5异步

  24. 24

    从ASP.NET MVC局部视图中调用JavaScript

  25. 25

    asp.net mvc使用Java脚本渲染局部视图

  26. 26

    Asp.Net Mvc渲染局部视图与淘汰赛

  27. 27

    ASP.NET MVC在局部视图中加载脚本

  28. 28

    ASP.net核心MVC局部视图无法卸载JS

  29. 29

    asp.net mvc使用Java脚本渲染局部视图

热门标签

归档