在mvc中使用ajax发送文件和文本参数

2023-11-27

检查下面的 jquery 代码。在这里,我从 html 中抓取文件,然后通过 ajax 调用将其发布到我的 Controller Post 方法。从控制器发布方法中,我成功地在名为的变量中接收该文件files如你看到的。但我的问题是我如何发送另外两个文本参数 -type and id从这个 ajax 调用中,我如何从带有该文件的控制器中获取该值?基本上我还必须获取带有这些文本值的文件。这怎么可能? ajax 和控制器需要什么改变?

Html:

<div class="col-sm-3" style="float:left;">
                        <label class="btn btn-outline-dark btn-block">
                            Browse...
                            <span id="uploaded-file-name" style="font-style: italic"></span>
                            <input id="file-upload" type="file" name="file"
                                   onchange="$('#uploaded-file-name').text($('#file-upload')[0].value);" hidden>
                        </label>
                    </div>
                    <div class="col-sm-2" style="float:left;">
                        <button class="btn btn-dark" id="start_upload">Start Upload</button>
                    </div>

jQuery 阿贾克斯:

//file upload
        $("#start_upload").click(function (evt) {
            var fileUpload = $("#file-upload").get(0);
            var files = fileUpload.files;
            var data = new FormData();
            for (var i = 0; i < files.length; i++) {
                data.append(files[i].name, files[i]);
            }
            $.ajax({
                type: "POST",
                url: "/Products/UploadFiles",
                contentType: false,
                processData: false,
                data: data,
                success: function (message) {
                    alert(message);
                },
                error: function () {
                    alert("There was error uploading files!");
                }
            });
        });

MVC .net核心控制器:

[HttpPost]
public IActionResult UploadFiles()
{
    //file upload process
    var files = Request.Form.Files;

    string type = "";
    int id = ;


}

您可以将其他输入字段值添加到 FormData 对象。

我首先创建一个视图模型来接受 ajax 负载

public class UploadVm
{
    public string Type { set; get; }
    public string Id { set; get; }
    public HttpPostedFileBase File { set; get; }
}

现在在您的视图中,添加 2 个输入元素以从用户读取此值

<input id="id"   type="text" />
<input id="type" type="text" />

现在,在您的 ajax 调用代码中,再添加 2 个项目FormData object.

$("#start_upload").click(function (evt) {

    var fileUpload = $("#file-upload").get(0);
    var files = fileUpload.files;
    var data = new FormData();

    for (var i = 0; i < files.length; i++) {
        data.append("File", files[i]);
    }

    //Add the input element values
    data.append("Type", $("#type").val());
    data.append("Id", $("#id").val());

    $.ajax({
        type: "POST",
        url: "/Products/UploadFiles",
        contentType: false,
        processData: false,
        data: data,
        success: function (message) {
            console.log(message);
        },
        error: function () {
            alert("There was error uploading files!");
        }
    });

});

现在在您的服务器端,您可以使用我们的新视图模型作为操作方法的参数。当进行ajax调用时,模型绑定器将能够映射从请求接收到的数据并将其映射到我们的属性UploadVm查看模型对象。

[HttpPost]
public ActionResult UploadFiles(UploadVm model)
{
    // to do : read values of model and use it
    // to do : return something
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在mvc中使用ajax发送文件和文本参数 的相关文章

  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • 重载<<的返回值

    include
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 循环内的异步性

    我正在使用 jQuery getJSON 用于从一组实用程序的给定 URL 检索数据的 API 我真的很想找到一种为每个实用程序重用代码 完全相同 的方法 由于循环的执行与 ajax 调用无关 因此我无法找到保留循环值的方法 我知道这个描述

随机推荐

  • 我如何编写正则表达式“所有字符都相同”?

    我希望它匹配 aaaaaa bb c but not aaabaaa cd 假设正则表达式引擎支持反向引用 1 在Java中它会是 theString matches 1
  • 将 Tab 键顺序限制为单个用户控件 (WPF)

    目前我有一个带有自定义 UserControl 的 WPF 项目 该控件包含一个网格 其中包含多个表单类型元素 复选框 文本框 组合框等 该控件被设计为看起来像表单一样操作 但它被放置在拖动画布内 这就是为什么它需要是 UserContro
  • 如何“缓存” mongoDB/Mongoose 结果以在 Express.js 视图和路由中使用

    我想要实现的是某种方式缓存结果 of a mongoDB 猫鼬我可以在我的视图和路线中使用的查询 每当将新文档添加到集合中时 我都需要能够更新此缓存 由于函数是异步的 我不确定这是否可能 如果是 那么如何做到这一点 这是我目前用于存储画廊的
  • 外部链接到 Shiny App 中的特定 tabPanel

    可以相对轻松地在平面闪亮应用程序中使用锚链接 https stackoverflow com a 28605517 1659890 但是 外部链接是否可以针对特定的目标 tabPanel of a navbarPage在闪亮的应用程序中 考
  • Windows Phone 7 Mango 照片相机的取景器方向

    我将 PhotoCamera 控件与 Windows Phone 7 Mango Beta 2 开发工具结合使用 相机控件的 ViewFinder 是一个填充有 VideoBrush 的矩形对象 如下例所示 http msdn micros
  • Python Pandas 使用杰卡德相似度的距离矩阵

    我已经实现了一个使用杰卡德相似度构造距离矩阵的函数 import pandas as pd entries id 1 category1 100 category2 0 category3 100 id 2 category1 100 ca
  • 计算每行零的数量,并删除具有超过 n 个零的行

    我有一个关于计算每行零的问题 我有一个像这样的数据框 a c 1 2 3 4 5 6 0 2 5 b c 0 0 0 2 6 7 0 0 0 c c 0 5 2 7 3 1 0 3 0 d c 1 2 6 3 8 4 0 4 0 e c 0
  • 我迷路了。 ASP.NET MVC 5 发生了什么?

    我一直在埋头从事各种项目 显然微软一直在忙着做出一些重大改变 这让我很困惑 当我去年安装 Visual Studio 2017 并去创建一个新项目时 ASP NET Core 第一次出现在我的视野中 突然我可以选择 NET Framewor
  • flutter 中的闪屏实现

    我是 Flutter 新手 我想在我的应用程序中添加启动画面 我使用了 initState 和导航器 但这没有用 该应用程序打开时会出现初始屏幕 但之后它不会导航到下一个屏幕 我的 main dart import package flut
  • Java:学习基础网络的最佳起点 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在尝试用Java 编写一个简单的网络聊天程序 我几乎没有网络经验 我想知道我应该开始寻找哪些资源 当然除了这里 目前最好坚持使用核心 Java
  • 将文件上传到 S3 时选项请求被拒绝

    当我尝试将 JS 文件上传到 S3 时 出现上传错误 OptionsRequestDenied 除了这个之外 所有其他文件 包括 JS 文件 都可以工作 该文件使用 jQuery 发出一些跨域请求 如下所示 function corsReq
  • NodeJS Electron 与 Express

    我正在尝试使用 Electron 用于网站和桌面应用程序 和 Express 用于会话等 制作一个网络应用程序 现在 我将其作为我的 app js const express require express const app Browse
  • 使用不同的 sqlite 数据库结构将新版本更新到应用程序商店

    我已经在应用程序商店上传了一个应用程序 版本1 0 我的应用程序使用 sqlite 数据库来存储一些数据 现在 我对数据库进行了一些更改 我在数据库的一个表中添加了 2 或 3 个新列 我想用新版本 1 1 更新我的应用程序的先前版本 它具
  • Lambda 表达式未返回预期的 MemberInfo

    我遇到了一个我没有预料到的问题 一个例子可能比一段话更能说明我的问题 更新 跳到最后一个代码块以获得更雄辩的代码示例 public class A public string B get set public class C A 这是方法中
  • 如何在android中单击listview项目时从数据库获取id

    我在此网站上搜索了与此相关的各种问题 但无法解决我遇到的问题 我想通过单击列表视图项从数据库获取 id 这是我的类别类 package com example reminders import java util List import a
  • Django migrate --fake 和 --fake-initial 解释

    我使用 Django 已经大约两年了 有一个功能我一直害怕使用 伪造迁移 我几乎到处都查过 我能得到的最多信息来自文档其中指出 fake 告诉 Django 将迁移标记为已应用或 未应用 但没有实际运行 SQL 来更改您的 数据库架构 这是
  • 当使用 .backward 作为方向时,Calendar.nextDate() 的表现非常奇怪。仅适用于该月的最后一天

    在我的应用程序中 我需要获取之前的凌晨 4 点 而不是当前日期的凌晨 4 点 例如 if it s March 05 10 00 am那么我应该期待回来 March 05 4 00 am if it s March 05 02 00 am那
  • 无法证明 Unit <:< (T, U)

    当尝试删除所有Unit 从列表中 我尝试打电话toMap scala gt List filter toMap
  • WPF - MVVM 文本框限制为特定字符

    我试图让文本框只接受特定字符 我的文本框绑定到以下内容 private string CompanyID public string CompanyID get return CompanyID set CompanyID Universa
  • 在mvc中使用ajax发送文件和文本参数

    检查下面的 jquery 代码 在这里 我从 html 中抓取文件 然后通过 ajax 调用将其发布到我的 Controller Post 方法 从控制器发布方法中 我成功地在名为的变量中接收该文件files如你看到的 但我的问题是我如何发