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 ...
随机推荐
- 热烈祝贺Polymer中文组织站点上线
欢迎来到前端世界的明天 由于官网被墙, 所以 http://docs.polymerchina.org/ 其实是一件很有意义的事. 组件化和重用,一直是编程界几十年来前进的方向和目标,随着时间的推移和 ...
- Malloc碎碎念
(以前为给同学分享写的点东西,很基础.)现在的比赛中堆溢出非常常见,对于glibc下malloc的理解也要深入一些. malloc_chunk的对齐属性 在glibc中,malloc_chunk以 2 ...
- jQuery事件绑定方法bind、 live、delegate和on的区别
我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的.而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 1.准备知识 当我们在开始的时候,有些知识是必须具备的: 1 ...
- 关于HTML css的一些题目
1.dcutype是什么,他是干嘛用的 doctype是文档的一种声明,告诉浏览器器用什么规则来解析文档. 2.ul ol dl分别适用于什么地方? ul无序列表 ol有序列表 dl是定义列表,会默认 ...
- 看懂此文,不再困惑于 JS 中的事件设计
看懂此文,不再困惑于 JS 中的事件设计 今天刚在关注的微信公众号看到的文章,关于JS事件的,写的很详细也很容易理解,相关的知识点都有总结到,看完就有种很舒畅的感觉,该串起来的知识点都串起来了.反正一 ...
- zoj 1149 Dividing
1到6的卡分别各有有限制的张数,问能不能恰好分,总张数不能超过20000. 很明显是多重背包问题,上去果写了个三重循环,然后就T了,重新打开背包九讲,找到了多重背包的二进制拆分优化,把其中一维n的复杂 ...
- Mysql源码安装
首先去http://dev.mysql.com/downloads/mysql/5.6.html 下载mysql的源代码,记住是source code,别下别的版本 1.安装依赖的包 yum -y i ...
- css样式表中四种属性选择器
学习此连接的总结http://developer.51cto.com/art/201009/226158.htmcss样式表中四种属性选择器1> 简易属性 tag[class]{ font-we ...
- 【学习笔记03】Javascript数组学习
数组定义的方法一: var Myarr=new Array(); //先声明一维 for(var i=0;i<2;i++){ //一维长度2 Myarr[i]=new Array(); //再声 ...
- Flink Program Guide (7) -- 容错 Fault Tolerance(DataStream API编程指导 -- For Java)
false false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-n ...