ASP.NET MVC 与Form表单交互
一,Form包含文件类(单选文件)
<form id="ImgForm" method="POST" enctype="multipart/form-data" name="ImgForm" action="/From/SubmitForm">
<input type="file" name="fileData" >
<br />
<input type="text" name="name" />
<br />
<input type="password" name="password" />
<br />
<input type="submit" value="上传" />
</form>
C#
[HttpPost]
public void SubmitForm(HttpPostedFileBase fileData, FormCollection collection)
{
string name = collection["name"];
string passowrd = collection["password"];
string image = fileData.FileName.ToString();
string imageGuid = Guid.NewGuid().ToString() + ".jpg";
string path = System.Web.HttpContext.Current.Server.MapPath("~/QRimage/") + imageGuid;//只是用于演示简单的上传删除方法
fileData.SaveAs(path);
string deletePath = "http://wx115.cnpsim.com/QRimage/" + imageGuid;
var img = new FileInfo(path);
if (img.Exists) img.Delete();
}
二,Form包含文件类(多选文件)
<div>
<form id="ImgForm" method="POST" enctype="multipart/form-data" name="ImgForm" action="/From/SubmitForm">
<input type="file" name="fileData" multiple />
<br />
<input type="text" name="name" />
<br />
<input type="password" name="password" />
<br />
<input type="submit" value="上传" />
</form>
</div>
C#
[HttpPost]
public void SubmitForm(HttpPostedFileBase[] fileData, FormCollection collection)
{
string name = collection["name"];
string passowrd = collection["password"];
foreach (var file in fileData)
{
string image = file.FileName.ToString();
string imageGuid = Guid.NewGuid().ToString() + ".jpg";
string path = System.Web.HttpContext.Current.Server.MapPath("~/QRimage/") + imageGuid;//只是用于演示简单的上传删除方法
file.SaveAs(path);
string deletePath = "http://wx115.cnpsim.com/QRimage/" + imageGuid;
var img = new FileInfo(path);
if (img.Exists) img.Delete();
}
}
二,Form包含文件类(多选文件多Input file)
<div>
<form id="ImgForm" method="POST" enctype="multipart/form-data" name="ImgForm" action="/From/SubmitForm">
<input type="file" name="fileData" multiple />
<br />
<input type="file" name="fileData" multiple />
<br />
<input type="file" name="fileData" multiple />
<br />
<input type="text" name="name" />
<br />
<input type="password" name="password" />
<br />
<input type="submit" value="上传" />
</form>
</div>
C#
[HttpPost]
public void SubmitForm(FormCollection collection)
{
string name = collection["name"];
string passowrd = collection["password"];
for(int i=;i<Request.Files.Count;i++)
{
HttpPostedFileBase f = Request.Files[i];
string nwame = f.FileName.ToString();
} }
总结:以上三种form提交文件的方式均可用Request.Files接受;
二
非表单方式的提交
第一种(不能直接传递文件可以但是有解决办法FormData,传递对象需要转化为Json)
参考链接:http://www.cnblogs.com/tylerdonet/p/3520862.html
参考链接:http://www.cnblogs.com/MC-zhouyongli/p/4789620.html
$.ajax({
type: "post",
url: "/From/SubmitForm",
dataType: "json",
data: { page: sumLoad, filt: filter },
//async: false,//关闭异步
success: function (data) {
if (data.length > )
{
$("#ImageDiv").append('<h4 id="imagealert">图片正在加载中请稍等...</h4>')
}
$.each(data, function (key, value) {
var img = new Image();
img.src = value;
img.onload = function () {
var size = img.width + 'x' + img.height;
console.log(size)
$("#ImageDiv").append('<div>' +
'<a href=' +
'"' + value + '"' +
'data-size=' +
'"' + size + '"' +
'>' +
'<img class="WorkOrderimageOld" style="height:40px;width:40px;" src=' +
'"' + img.src + '"' +
'>' +
'</a>' +
'</div>'
)
};
}
);
},
complete:function()
{
// $("#ImageDiv").text("图片已加载完成");
},
beforeSend: function () {
//$("#ImageDiv").text("图片加载中");
},
error: function () {
// $("#ImageDiv").text("图片加载异常");
},
});
C#
public ActionResult WorkOrderJson(int page = , string filt="全部")
{
..........
return Json(list, JsonRequestBehavior.AllowGet);
}
第二种(已传递文件为主,不能一次传递多个文件可以添加for循环模拟上传多个文件)
参考链接:http://www.cnblogs.com/snowinmay/archive/2013/07/17/3195072.html
function SaveImage()
{
var Savefiles=document.getElementById("inputFile").files;
var formData = new FormData();
formData.append('file', Savefiles[n]);
var oReq = new XMLHttpRequest();
oReq.open("POST", "/WorkOrder/ImageUpload", false);//第三个参数用于控制同步异步 true为异步,false为同步
oReq.onload = function (oEvent) {
if (oReq.readyState == 4) {
if (oReq.status == 200 || oReq.status == 0) {
var result = oReq.responseText;
//var json = eval("(" + result + ")");
if(result=="OK")
{
Backinfo[m] = "OK";
$("#ImageDiv").text("第"+m+"张图片已上传");
} }
}
};
oReq.send(formData);
}
C#
public string ImageUpload()
{
HttpPostedFileBase file = Request.Files[];
string Checkerror = CheckImg(file);//自定义检查文件类型以及大小等
AppLog.Info("检查图片信息结果:" + Checkerror);
if (Checkerror == "ok")
{
return "OK";
}
else
{
return "NO";
} }
第三种jQuery File Upload-jQuery上传插件(查看资料功能比较强大但为用上)
实例地址:http://www.jq22.com/jquery-info230
ASP.NET MVC 与Form表单交互的更多相关文章
- asp.net.mvc 中form表单提交控制器的2种方法和控制器接收页面提交数据的4种方法
MVC中表单form是怎样提交? 控制器Controller是怎样接收的? 1..cshtml 页面form提交 (1)普通方式的的提交
- MVC中Form表单的提交
概述 Web页面进行Form表单提交是数据提交的一种,在MVC中Form表单提交到服务器.服务端接受Form表单的方式有多种,如果一个Form有2个submit按钮,那后台如何判断是哪个按钮提交的数据 ...
- ASP.NET MVC Jquery Validate 表单验证的多种方式
在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...
- [转]ASP.NET MVC Jquery Validate 表单验证的多种方式介绍
在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...
- Asp,Net里的Form表单
1.Form表单是页面与Web服务器交互过程中最重要的信息来源. 2.<form action="传到哪个页面的网站地址" method="post和get 两种方 ...
- ASP.NET MVC 3 之表单和 HTML 辅助方法(摘抄)
——选自<ASP.NET MVC3 高级编程(第5章) 孙远帅 译> 第5章 表单和HTML辅助方法 本章内容简介: * 理解表单 * 如何利用HTML辅助方法 * 编辑和输入的辅助方法 ...
- asp.net 登陆验证 Form表单验证的3种方式 FormsAuthentication.SetAuthCookie;FormsAuthentication.RedirectFromLoginPage;FormsAuthenticationTicket
我们在登陆成功后,使用下面的3种方法,都是同一个目的:创建身份验证票并将其附加到 Cookie, 当我们用Forms认证方式的时候,可以使用HttpContext.Current.User.Ident ...
- mvc中form表单提交的几种形式
第一种方式:submit 按钮 提交 <form action="MyDemand" method="post"> <span>关键字: ...
- asp.net中通过form表单submit提交到后台的实例
前台<body>中的代码: <body> <div id="top"> </div> <form id="login ...
随机推荐
- 关于VMware导入Linux VM找不到网卡的问题
今天遇到一个问题:由于虚拟机升级,导致以前的Linux VM(CentoS 6.7)在新的VMware里面打开,系统提示找不到网卡的问题,在网上找了好多解决办法,基本上都是一样的答案. 与网卡有关的几 ...
- Zipper
Zipper Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- 深入理解JVM : Java垃圾收集器
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现. Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商.不同版本的虚拟机所提供的垃圾收集器都可能会有很大差 ...
- js的事件属性方法一览表
event对象常用属性和方法 event 对象用来表示当前事件,事件有很多状态,例如,鼠标单击时的位置,按下键盘时的按键,发生事件的HTML元素,是否执行默认动作,是否冒泡等,这些都是作为event对 ...
- RDLC报表系列(六) 多图表-折线图和柱状图
美好的一天开始了,这篇是RDLC系列的最后一篇文章,我的小项目也已经release,正在测试中. 1.新建demo3.aspx和demo3.rdlc文件 2.往rdlc文件中拖一个图标控件,在弹出的窗 ...
- DataGridview 填写数字
private DataGridViewTextBoxEditingControl CellEdit = null; // 声明 一个 CellEdit private void dgv ...
- requireJS配置选项
1. baseUrl 当设置的目录最前面带有/,则是从电脑的根目录开始算起,若是baseUrl='another/path' 则是从require.js的目录开始算起 而且当require(['a. ...
- 运维人员:走好你的IT运维路
转自 http://os.51cto.com/art/201303/387120.htm 现阶段,大多数运维人员只是处于被动低效率手工救火的状态,企业对其重视程度不高,导致部分运维人员对自己的 ...
- js统计字符串,并且判断出现次数最多的
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python成长之路第一篇(5)文件的基本操作
一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...