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 ...
随机推荐
- hdu 5616 Jam's balance(dp 正反01背包)
来自官方题解: AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream ...
- c++多线程崩溃错误1
主线程中的子线程没有jion,导致主线程马上结束,子线程对象被释放掉,而子线程还在后台继续执行导致崩溃 int main() OBJ = classA() OBJ.START()//在start函数中 ...
- Oracle 存储过程之通用分页查询
在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage ( tableName in varcha ...
- 样式布局分享-基于frozen.js的移动OA
最近改造了公司移动OA的样式,改善了显示效果和用户体验,其中用到了腾讯的 frozen.js 框架,在此把布局代码分享给大家,希望大家可以用得上,具体效果如下图. Demo 百度网盘 下载地址 Git ...
- DOM事件对象
触发DOM上的事件时会产生一个事件对象event. event的内容:与事件有关的信息,导致事件的元素,事件的类型及其他与特定事件相关的信息. event对象会传入到事件处理程序中. 一.DOM 中的 ...
- JQuery(二)——简单动画效果
上一篇博客总结了JQuery的一些基本知识,这篇博客重点从JQuery能够制造各种各样的网页效果方面来进行总结.总结一些常见的常用的基本效果的必备方法.从隐藏显示,淡入淡出,滑动,动画等几个方面来简单 ...
- 启动程序的c++方法
#include <Windows.h> void main() { WinExec( "notepad.exe fitdata.txt", SW_SHOW ); // ...
- golang Aes
package models import ( "bytes" "crypto/aes" "crypto/cipher" "err ...
- 一个很奇特的异常 tmpFile.renameTo(classFile) failed
刚换新电脑 win8+迈克菲 ,当tomcat把默认端口更改后(或者是启动了迈克菲的实时扫描),部署工程后,主页打不开了. 杀毒软件都会造成这个问题 百度杀毒全家桶 360全家桶 关掉就好了 .怀疑是 ...
- ajax接收遍历处理json格式数据
ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...