首页 > 编程语言 >使用asp.net mvc 过程中 参数传递的问题记录。

使用asp.net mvc 过程中 参数传递的问题记录。

时间:2024-10-30 14:47:10浏览次数:2  
标签:function index asp img selectedFiles mvc var net 上传

环境:asp.net MVC

需求:要实现主从表数据存储,主表为结构化信息,附表为对应的图片。

实现过程: 页面中当用户在新建数据的时候,未保存时没有主表的主键,同时用户也会选择要上传的图片一同保存。 

使用 ajaxfileupload.js 实现多文件上传,上传之后 通过window.URL.createObjectURL 将上传的文件 转换成BlobURL,创建动态img标签用于预览,

 $('#uploadFile').change(function (e) {
            var f = document.getElementById('uploadFile').files;

            for (var i = 0 ; i < f.length; i++) {
                selectedFiles.push(f[i]);
                var li = document.createElement("li");
                var src = window.URL.createObjectURL(f[i]);
                var img = document.createElement('img');
                img.src = src;
                img.width = 245;
                (function (index) {
                    $(img).bind("dblclick", function () {
                        var index = Array.from(this.parentNode.children).indexOf(this);
                        selectedFiles.splice(index, 1); // 从数组中移除文件
                        $(this).remove();
                    })
                })(selectedFiles.length - 1);
                li.appendChild(img);
                document.getElementById("imglist").appendChild(li);
            }
            e.target.value = '';
    });

 

考虑用户在使用过程中,可以进行多次选择,出现了input[file] 的change事件只出发一次,导致不能选择图片之后立即显示,所以 在函授的的最后 通过清空 input[file]的value 来保证每次都能触发。

同时增加了图片双击删除的功能。

1  (function (index) {
2                     $(img).bind("dblclick", function () {
3                         var index = Array.from(this.parentNode.children).indexOf(this);
4                         selectedFiles.splice(index, 1); // 从数组中移除文件
5                         $(this).remove();
6                     })
7                 })(selectedFiles.length - 1);

 

因为使用了框架,框架中在提交表单后自动刷新,所以在提交表单后在进行文件上传的方式不可行。

偷懒后,先上传文件,返回上传文件的虚拟路径,然后在进行主表数据的保存。但是在保存过程中发现了 Controller 中无法接收到 要传过来的参数,过程不赘述了上结果

controller的函数

    [HttpPost]
        [ValidateAntiForgeryToken]
        [AjaxOnly]
        [ValidateInput(false)]
        public ActionResult SaveForm(string keyValue, HousesInfoEntity entity,string ImgEntityJson)
        {
            string houseid = housesinfobll.SaveForm(keyValue, entity);
            List<ResourceTableEntity> ImgEntryList = ImgEntityJson.ToList<ResourceTableEntity>();
            return Success("操作成功。",houseid);
        }

其中

HousesInfoEntity 为对象实体
ImgEntityJson   为上传的图片成功后的路径集合

前台代码
var postData ={省略属性}; // postData中的属性 与 HousesInfoEntity 完全对应
postData["ImgEntityJson"] = [{省略}]

这样在Action中即可接受到对应的参数了。
 


 

标签:function,index,asp,img,selectedFiles,mvc,var,net,上传
From: https://www.cnblogs.com/fly-in-sky/p/18515824

相关文章

  • .NET中的线程池ThreadPool(链接)
    微软推荐在.NET中使用多线程开发时,都使用线程池,下面这篇微软文档介绍了.NET中的线程池类ThreadPool:ThreadPoolClass注意上面文档中的这句话:Thereisonethreadpoolperprocess.也就是说,每个.NET进程(process)中有一个线程池,线程池在每个.NET进程中只有一个,一个.NET进程中......
  • 在K8S中,有一家拥有非常分散系统,拥有大量数据中心、虚拟机以及许多从事各种任务的员工
    对于一家拥有非常分散系统的跨国公司来说,使用Kubernetes(K8s)来管理其大量的数据中心、虚拟机以及相关的基础设施可以带来显著的好处。Kubernetes是一个用于自动化部署、扩展和管理容器化应用的开源平台,它可以帮助企业实现资源的一致管理和更高效的运营。以下是如何利用Kubernetes进......
  • .NET 8.0 开源在线考试系统(支持移动端)
    https://www.cnblogs.com/1312mn/p/18510576 阅读目录前言系统介绍系统功能支持环境系统源码项目部署项目效果项目总结项目地址最后前言推荐一款基于.NET8.0免费开源跨平台在线考试系统,系统不仅支持桌面端,还特别优化了移动端的用户体验。通过本系统可以轻松......
  • Install PNetLab v6 BETA release
    安装仿真网络模拟器PNetLabv6版本Installationinstructions-PNetLabv6BETAreleaseReadthefullinstructionsandimportantnotesbeforestartingtheprocess.Afteryoufinishreadingthem,followtheprocessstepbystep.Step1DownloadtheUbuntuServ......
  • InnoDB存储引擎、多版本并发控制(MVCC)简介、Redis简介
    (一)InnoDB存储引擎InnoDB是MySQL最常用的存储引擎之一,有支持事务处理、行级锁定和外键约束等高级功能而著称。1、InnoDB架构物理结构表空间:InnoDB的数据存储空间在表空间中,表空间可以分为系统表空间、文件表空间和通用表空间。系统表空间:默认存储在ibdata1文件中,包含系统......
  • ubuntu安装linux版本acunetix漏洞扫描软件
    为记事本里面没有保存的内容写一份文档,为了防止文件丢失,随手补写一份文档这篇文章主要讲在linux系统下如何安装acunetix1.安装前准备1.1.系统情况CPU:4vcpuRAM:8GRAMDisk:100GBSysOS:ubuntu22.04LTS1.2.安装必要的软件sudoapt-getupdatesudoapt-getinstall......
  • 【SpringMVC】web服务器,访问失败的问题,SpringMVC,建立连接,请求
    【web服务器】web服务器可以对http协议进行封装,程序员不需要直接对http协议进行操作(不需要去写复杂的网络编程代码),让web开发更加便捷,所以它也有「WWW服务器」的称呼常见的web服务器:Tomcat,Jboss,IIS等SpringBoot内置了Tomcat服务器,无需配置即可使用Tomcat默认端口是「8080」......
  • 【SpringMVC】传递json,获取url参数,上传文件
    【传递json数据】【json概念】一种轻量级数据交互格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,其本质上是字符串,负责在不同的语言中数据传递与交换json数据以字符串的形式体现【json字符串与Java对象互转】我们需要在pom.xml中增加对json的依赖【对象转jso......
  • Java语言的Netty框架+云快充协议1.5+充电桩系统+新能源汽车充电桩系统源码
    云快充协议+云快充1.5协议+云快充1.6+云快充协议开源代码+云快充底层协议+云快充桩直连+桩直连协议+充电桩协议+云快充源码介绍云快充协议+云快充1.5协议+云快充1.6+云快充协议开源代码+云快充底层协议+云快充桩直连+桩直连协议+充电桩协议+云快充源码软件架构1、提供云快......
  • MobileNetv2网络详解
    背景:MobileNetv1中DW卷积在训练完之后部分卷积核会废掉,大部分参数为“0”MobileNetv2网络是由Google团队在2018年提出的,相比于MobileNetv1网络,准确率更高,模型更小网络亮点:InvertedResiduals(倒残差结构)LinearBottlenecks倒残差结构:ResidualBlock:ResNet网络中提出......