MVC ajaxSubmit上传图片

简介: 注意事项: 1.提交form,必须引用jquery.form.min.js 2.不要使用mvc自带的Ajax.Form()   1.页面cshtml Input.Save = function (e) { $('#frmInput').

注意事项:

1.提交form,必须引用jquery.form.min.js

2.不要使用mvc自带的Ajax.Form()

 

1.页面cshtml

<form name="frmInput" id="frmInput" method="post" action="@Url.Action(ViewContext.RouteData.Values["Action"].ToString())" enctype="multipart/form-data" >
<input id="f1" name="f1" type="file">
<input type="button" value="保存" onclick="Input.Save(this)" class="btn-8" />
</from>

Input.Save = function (e) { 
        $('#frmInput').ajaxSubmit({
            url: Url,
            error: function (request) {
                alert('保存出错,请重试!');
            },
            success: function (data) { 
                var dataObj = eval("(" + data + ")");//转换为json对象 
         //方法二
         //var dataObj=jQuery.parseJSON(data); if (dataObj.IsOK) { //刷新列表 alert("保存成功!"); } else { alert('保存失败!'); } } }); }

 

2.后台

 示例1,忘记什么时候写的,以后看到再修改补充

[HttpPost]
public JsonResult Create(MerchantsModel model, FormCollection form)
{
    return new JsonResult() {  ContentType = "text/html", Data = object };// return Json(result, "text/html", Encoding.UTF8);
}

  示例2

[HttpPost]
        public ActionResult void Create(Model modelName, FormCollection form)
        {
            var requestFiles = Request.Files;//HttpFileCollectionBase
            if (requestFiles.Count > 0)
            {
                for (int i = 0; i < requestFiles.Count; i++)
                {
                    //此块代码仅作示例
                    //文件名称 requestFiles[i].FileName 
                    var postedfile =  requestFiles[i];//HttpPostedFileBase
                    var savePath="d://d.jpg";
                    postedfile.SaveAs(savePath);
                }
            }
           return Json(result, "text/html", Encoding.UTF8);
        }

 

 

3. 解决问题

   返回<pre style="word-wrap: break-word; white-space: pre-wrap;">....</pre> 的问题

 

4. HttpPostedFile 转为HttpPostedFileBase 

它们之间是两个独立的东西,需要通过HttpPostedFileWrapper转换,犹如 HttpContext和HttpContextBase要通过HttpContextWrapper 包装,是.NET3.5时才有的,使用.NET2.0类库可能会遇到,这里记录下。

 public bool Upload(HttpPostedFile file)
        {
            HttpPostedFileBase hpfb = new HttpPostedFileWrapper(file);
            return false;
        }

来自:http://www.cnblogs.com/Kummy/archive/2013/02/27/2934608.html

 

相关文章
|
开发框架 前端开发 .NET
|
JavaScript 前端开发 .NET
|
前端开发 Java Spring
|
前端开发 JavaScript
MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦
原文:MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦 文本编辑器有很多,比如ticymce和CKEditor就比较好用,但涉及到图片、文件上传,需要结合CKFinder实现,而且有些功能是收费的,即使有意付费使用, 支付也不方便。
1506 0
|
前端开发
.net mvc中上传图片生成缩略图
        #region CreateThumbnail         ///         /// 生成缩略图         ///         /// 上传的HttpPostedFile或图片物理路径         /// 上传文件夹相对路径         /// 后缀(如:.
1003 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
46 0
|
6月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
189 0
|
6月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
78 0