首页 新闻 搜索 专区 学院

Asp.Net MVC3 文件上传与模型绑定

0
悬赏园豆:10 [已解决问题] 解决于 2013-02-17 02:31

文件上传的控件是<input type="file">,把这个控件的name属性设置成跟后台的类的属性名一样时,好让MVC的模型绑定可以用:

 

 1 @using (Html.BeginForm("Edit", "Admin", FormMethod.Post, new { enctype = "multipart/form-data" }))
 2 {
 3     @Html.EditorForModel()
 4     <div class="editor-label">Image</div>
 5     <div class="editor-field">
 6         @if (Model.ImageData == null)
 7         {
 8             @:None
 9         }
10         else
11         {
12             <img width="150" height="150" src="@Url.Action("GetImage","Product",new{Model.ProductID})"/>
13         }
14         <div>Upload new image: <input type="file" name="ImageData"/></div>
15     </div>
16     <input type="submit" value="Save" />
17     @Html.ActionLink("Cancel and return to List", "Index")
18 }

出现这样的错误

只有将name的值改成其他字符,后台action加一个相应的参数,才能获取提交的图片,为什么会这样,有什么办法可以让上传的图片也可以自动绑定

白光的主页 白光 | 初学一级 | 园豆:48
提问于:2013-02-04 23:25
< >
分享
最佳答案
0

给你一个思路:

http://www.cnblogs.com/weicong/archive/2012/03/31/2427608.html

你可以用他相同的做法来做.

model上不需要特别修改

以我给你示例,在使用时,只需要:

@Html.EditorFor(x => x.pcontent, "kindeditor")

就可以和model绑定了 

其中,kindeditor=kindeditor.cshtml

收获园豆:6
沈融兴 | 菜鸟二级 |园豆:404 | 2013-02-06 09:13

我想知道,在上面这个上传文件的例子中,MVC Framework 在处理我上传的文件的时候 会出现base-64的错误,如果我将name改一下,后台action用另一个参数接收这个文件,则没问题,所以很奇怪,目前正在研究中......还是很感谢你给的思路!

白光 | 园豆:48 (初学一级) | 2013-02-07 01:55

@白光: 我给你的例子中有一个很完整的图片上传代码哦~

沈融兴 | 园豆:404 (菜鸟二级) | 2013-02-07 02:07
其他回答(3)
0

帮你搜索了一下,希望对你有帮助吧

http://stackoverflow.com/questions/3026847/asp-net-mvc-file-upload-error-the-input-is-not-a-valid-base-64-string

收获园豆:4
小李北漂 | 园豆:176 (初学一级) | 2013-02-05 08:13

跟我遇到的问题差不多,可他们最终还是通过改name的方式解决的。

支持(0) 反对(0) 白光 | 园豆:48 (初学一级) | 2013-02-05 16:58
0

不明白 “MVC的模型绑定” 什么意思

卒子 | 园豆:588 (小虾三级) | 2013-02-05 09:06

可以百度下关键字

支持(0) 反对(0) 白光 | 园豆:48 (初学一级) | 2013-02-05 16:59
0

楼主,问题解决了吗?我也碰到了这个问题,<input type='file' id='xxx' name='xxx' ...>,在后台属性同为'xxx'的模型没有接受到任何Post过来的上传数据。

楼主如果方便的话能够跟我解答一下这个问题吗?jiangwy280@sina.com,万分感谢!

jiangwy280 | 园豆:202 (菜鸟二级) | 2016-08-18 16:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册