ASP.NET MVC 将模型与文件一起*传递回控制器

2024-02-26

好吧,我已经研究了几个小时了,但我根本找不到解决方案。

我想从我的用户那里获取一些数据。首先,我使用控制器创建一个接收模型的视图:

public ViewResult CreateArticle()
{
    Article newArticle = new Article();
    ImagesUploadModel dataFromUser = new ImagesUploadModel(newArticle);
    return View(dataFromUser);
}

然后,我有这样的看法:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">

    <h2>AddArticle</h2>

    <% using (Html.BeginForm("CreateArticle", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" })){ %>


                <%= Html.LabelFor(model => model.newArticle.Title)%>
                <%= Html.TextBoxFor(model => model.newArticle.Title)%>

                <%= Html.LabelFor(model => model.newArticle.ContentText)%>
                <%= Html.TextBoxFor(model => model.newArticle.ContentText)%>

                <%= Html.LabelFor(model => model.newArticle.CategoryID)%>
                <%= Html.TextBoxFor(model => model.newArticle.CategoryID)%>

                <p>
                    Image1: <input type="file" name="file1" id="file1" />
                </p>
                <p>
                    Image2: <input type="file" name="file2" id="file2" />
                </p>

            <div>
                <button type="submit" />Create
            </div>



    <%} %>


</asp:Content>

最后 - 原始控制器,但这次配置为接受数据:

   [HttpPost]
    public ActionResult CreateArticle(ImagesUploadModel dataFromUser)
    {
        if (ModelState.IsValid)
        {
            HttpPostedFileBase[] imagesArr;
            imagesArr = new HttpPostedFileBase[2]; 
            int i = 0;
            foreach (string f in Request.Files)
            {
                HttpPostedFileBase file = Request.Files[f];
                if (file.ContentLength > 0)
                    imagesArr[i] = file;
            }

该控制器的其余部分并不重要,因为无论我做什么,count的属性Request.Files (or Request.Files.Keys)仍然是 0。我根本找不到从表单传递文件的方法(模型传递得很好)。


您可能需要考虑不要将文件与表格的其余部分一起发布 - 有充分的理由和其他方法 https://stackoverflow.com/questions/851318/asp-net-mvc-1-to-many-saving-post-and-upload-files/851326#851326你可以实现你想要的。

另外,请查看这个问题 https://stackoverflow.com/questions/1653469/how-can-i-upload-a-file-and-save-it-to-a-stream-for-further-preview-using-c/1653508#1653508 and 这个建议 http://www.hanselman.com/blog/ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludingTestsAndMocks.aspx关于MVC中的文件上传。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 将模型与文件一起*传递回控制器 的相关文章

  • 将 Javascript 类数组传递给 MVC 控制器?

    我正在尝试将一系列服务传递给我的控制器 我尝试了很多不同的方法来让它工作 在进入控制器之前序列化数据 序列化每个服务 唯一有效的方法是将控制器参数更改为字符串并序列化数组 然后使用 JsonConvert 但我 d 宁愿不这样做 使用指定的
  • 如何发送电子邮件而不进入垃圾邮件

    MailAddress mailFrom new MailAddress email protected cdn cgi l email protection MailAddress mailTo new MailAddress email
  • mvc 2中的图像上传和预览

    我正在通过转换 asp net 网站来学习 mvc 2 在我的页面中 我必须上传图像并显示图像的预览 下面给出了我的 asp net 页面的屏幕截图 我将模型创建为 public class Contest public int conte
  • 如何正确链接不同View之间

    我有一个master cshtml带有导航栏 我的第一个链接是另一个视图 ProjectManagement li a href Views ProjectManagement cshtml Project Management a li
  • 将 NameValueCollection 绑定到 GridView?

    我应该使用哪种集合来将 NameValuecollection 转换为可绑定到 GridView 直接做的时候没效果 aspx cs 中的代码 private void BindList NameValueCollection nvpLis
  • 具有实体框架的 MVC 控制器的 T4 模板 - 主机的成员属性 (MvcTextTemplateHost)?

    有谁有我可以在 MVC 3 附带的 T4 模板 ControllerWithContext tt 中使用的 Host 对象成员的完整引用吗 我已经尝试了我能想到的所有谷歌搜索 但唯一相关的结果是这个页面 http blogs msdn co
  • jquery ajax可以调用外部webservice吗?

    jquery ajax代码可以调用吗网络服务来自另一个域名或另一个网站 像这样 ajax type POST url http AnotherWebSite com WebService asmx HelloWorld data name
  • 为什么自定义类型变量不保存值MVC

    我正在尝试使用 MVC 5 构建一个网站 我有一个包含 3 个变量的控制器类 public class WorkerController Controller public ViewModel viewModel new ViewModel
  • 错误:“无法在 Web 服务器上开始调试...”ASP.NET 4.0

    当我想在 IIS 服务器上创建网站时出现错误 我使用的是 Windows 7 和 Visual Studio 2010 我是否必须为 IIS 注册或配置 asp net 4 0 这里没有太多细节 但是当我尝试在刚刚从 3 5 更改为 4 0
  • asp.net mvc 它能处理所有请求吗? - iis 7集成模式

    我有一个使用 asp net mvc 构建的网站 在 IIS 7 上使用集成模式运行 我注意到 当我输入 mysite com test html 时 我得到了 The IControllerFactory did not return a
  • 在 javascript 中访问 ajax POST 响应

    我正在从 javascript 函数发出 ajax POST 请求 function UpdateMetrics ajax type POST url MyHandler ashx Param1 value1 data contentTyp
  • 包括过滤器子集合[重复]

    这个问题在这里已经有答案了 我在为 LINQ 查询中包含的项目添加一些过滤条件时遇到一些困难 我的查询就像 var item Context Order Include Inner Include Inner first Include I
  • ASP.NET MVC 子操作的路由匹配

    子动作的路由匹配方法与普通动作有什么不同吗 换句话说 子操作是否有一些自动生成的 url 来进行与父操作类似的匹配 父级或子级动作处理没有区别 任何操作都遵循您在中设置的相同路线定义Application Start 这意味着父母的行为以及
  • SIM800C GSM AT 命令如何以编程方式上传 .amr 音频文件

    我拼命尝试将一些音频文件上传到SIM800C的内部存储器 到目前为止 这是我能够做到的 但上传的文件似乎无效 并且不播放任何声音 但与AT FSLS C 我可以看到该文件就在那里 以下是我使用的 AT 命令 AT FSCREATE tts2
  • Page_ClientValidate 未定义

    我正在使用 ASP NET 2 0 并使用 IE8 作为我的默认浏览器 但无论我尝试多少次 Page ClientValidate一直给我这个错误 它没有定义 我怎么解决这个问题 请帮忙 所以 我想你的页面中可能没有任何RequiredVa
  • asp.net mvc:将 RedirectToAction(string, object) 转换为 RedirectToAction(x => x.Detail(id))

    任何人都知道如何创建一个方法 我将把它放在扩展类中 该方法将仅使用表达式 无魔术字符串 与 mvc 的 RedirectToAction 执行相同的操作 所以不要写这样的东西 RedirectToAction Detail new Rout
  • 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?

    我只是想了解为什么我不能在 Web 服务中使用静态 Web 方法 为什么会受到限制 有人可以给我对此进行简洁的解释吗 答案是 因为你不能 它不是这样设计的 其设计是 将创建 Web 服务类的实例 然后调用实例方法 我只能猜测微软为什么这样设
  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • 如何从 Web API 应用程序返回 PDF

    我有一个在服务器上运行的 Web API 项目 它应该从两种不同类型的源返回 PDF 实际的可移植文档文件 PDF 和存储在数据库中的 base64 字符串 我遇到的问题是将文档发送回客户端 MVC 应用程序 剩下的部分是关于所发生的一切以
  • 临时目录中自动生成的“App_Web********.cs”文件导致构建错误

    因此 这已经困扰我一段时间了 但有时在我的 Visual Studio 2013 ASP NET MVC4 项目中 我会删除未使用的 ViewModel 类 并在下一次编译时收到如下错误 对于名为 我刚刚删除的 MostRecentMemb

随机推荐

  • flutter 中的多选项卡/页面视图

    如何在 flutter 中创建多页面视图 其中页面对应于底部导航栏中的选项卡 以便与页面对应的小部件仅按需构建一次 例如 考虑一个简单的 facebook 应用程序类型的 UI 带有两个选项卡 提要和具有以下行为的通知 提要和通知都是通过网
  • 当弹出窗口打开时,单击 Windows 标题栏的最小化、最大化和关闭按钮不起作用

    当我的弹出窗口打开时 第一次单击最小化或最大化或关闭按钮不起作用 第一次单击这些标题栏按钮将关闭弹出菜单并转移焦点 然后第二次单击窗口的最小化 最大化 关闭 有什么方法可以在第一次单击时激活这些标题栏按钮吗 主窗口 xaml
  • 切换目标框架后 System.Data.SQLite.DLL 不再加载

    我不得不从 net 4 5 切换到 net 4 0 因为我的一些客户仍然使用 WinXP 现在 切换后 这是我收到的错误 Could not load file or assembly System Data SQLite Version
  • C# 结合 GeckoFX + Tor.NET 库

    我正在尝试结合 GeckoFx 库和 Tor NET 库 在我的代码中 我做好了使用 tor 网络的所有准备 ClientCreateParams createParameters new ClientCreateParams create
  • Netbeans 8.2 无法验证 Git 凭据?

    我正在制作一个 Java 项目 该项目已在 github 上进行了多次提交 我最近将 Kubuntu 上的操作系统版本从 17 10 gt 18 04 更改 并安装了带有 Java 版本 1 8 0 171 的 Netbeans 8 2 以
  • Flutter插件:InAppPurchasePlugin.java使用未经检查或不安全的操作

    当我尝试在应用程序 pubspec yaml 文件中添加 in app purchase 插件时 会发生以下错误 就在添加插件之后 与任何特定代码无关 Note Users tanzimfahim flutter pub cache hos
  • GetAltTabInfo 用法?

    我无法使用 GetAltTabInfo 可能是一个愚蠢的错误 但这有什么问题呢 HWND taskSwitcher FindWindow L TaskSwitcherWnd L Task Switching ALTTABINFO altTa
  • 如何在android中的字符串中的每个“\n”之后添加行间距?

    正如问题所明确指出的那样 我想在每个之后添加一个小行距 n在 Android 资源文件的字符串中定义 假设我们在 xml 中定义了一个字符串 如下所示
  • 重置表单,无需 JavaScript? (输入类型=重置不起作用)

    好吧 我想标题已经说明了一切 我正在寻找一种重置表单中所有字段的方法 我尝试过以下一些方法
  • 跨多个服务器扩展 Socket.IO

    我一直在寻找有关为 Node js Socket IO 安装设置多服务器集群的帮助 这就是我正在尝试做的 在 F5 负载均衡器中有 1 个 VIP 指向n运行 Express 和 Socket IO 的 Node 服务器数量 让客户端通过以
  • 我应该如何 scipy.optimize 具有边界的多元且不可微的函数?

    我遇到了以下优化问题 目标函数是一个多变量且不可微的函数 它将标量列表作为参数并返回标量 它是不可微的 因为函数内的计算基于 pandas 和一系列滚动 std 等操作 伪代码如下 def target function x list gt
  • 如何强制 Xcode 使用自定义编译器?

    我想强制 Xcode 使用自定义编译器 从 src 构建的 clang llvm 以便我可以使用 clang 插件 我的Xcode版本是7 3 1 人们说使用自定义工具链是可能的 我没有对它们进行研究 因为更简单的解决方案对我来说效果很好
  • 如何更新 npm 模块,忽略 git 存储库

    我分叉了一个 npm 模块 现在它是一个 git 存储库 所以我的 package json dependencies some module git https github com my name some module git 分叉的
  • Git 存储库内部格式解释

    有没有关于 Git 如何在其存储库中存储文件的文档 我尝试在互联网上搜索 但没有可用的结果 也许我使用了不正确的查询 或者也许这是一个伟大的秘密 Git 存储库内部格式 让我解释一下 为什么我需要这些火箭科学信息 我正在使用 C 从存储库中
  • 使用 ruby​​ 迭代 yaml 数组

    我申请了YAML load file到我的示例文件 languages name English iso 639 en native name English region UK US name Klingon iso 639 tlh na
  • Delphi 2009 中如何重定向控制台(stdin、stderr)?

    我在互联网上尝试了几个示例 但它们都不起作用 脚本未执行 也许是因为适用于 Delphi 2009 之前的 unicode 我需要运行一些 python 脚本并向它们传递参数 例如 python Plugins RunPlugin py a
  • 最有用的软件开发指标是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过使用一列作为新级别将列更改为多索引

    我有一个数据框 df pd DataFrame from dict Close 1 14 03 3 14 02 0 79 88 2 80 31 High 1 14 3 3 14 33 0 80 22 2 81 19 Low 1 14 03
  • 在 Node.js 中对 S3 上传进行存根

    我该如何在 Node js 中存根 S3 上传 为了获得洞察力 我使用 Mocha 进行测试 使用 Sinon 进行存根 但我愿意改变任何东西 我有一个导出执行上传功能的文件 它看起来像这样 var AWS require aws sdk
  • ASP.NET MVC 将模型与文件一起*传递回控制器

    好吧 我已经研究了几个小时了 但我根本找不到解决方案 我想从我的用户那里获取一些数据 首先 我使用控制器创建一个接收模型的视图 public ViewResult CreateArticle Article newArticle new A