首页 新闻 搜索 专区 学院

MVC 上传文件后返回值的问题 ? 关于枚举

0
悬赏园豆:30 [已解决问题] 解决于 2008-08-17 15:01
看了Scott Hanselman的文章,在MVC下上传文件。
原文在这里

在view页面不以foreach取读。提示如下红色部分错误,我清楚是没有定义枚举。但是他的原文中没有提及,如何处理呢?(我是新手,谢谢大家了)

oreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator'


主要代码如下。

    public  class ViewDataUploadFilesResult 
    

        
public string Name getset; } 
        
public int Length getset; }

    }
  
    
public class uploadtestController : Controller
    
{
        
public ActionResult Index()
        
{
            var r 
= new List<ViewDataUploadFilesResult>();
                
foreach (string upItem in Request.Files)
                
{
                    HttpPostedFileBase postedFile 
= Request.Files[upItem] as HttpPostedFileBase;
                    
if (postedFile.ContentLength == 0)
                        
continue;
                    
string savedName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, postedFile.FileName);
                    postedFile.SaveAs(savedName);
                    r.Add(
new ViewDataUploadFilesResult() { Name = savedName, Length = postedFile.ContentLength });

                }

            
this.ViewData["upInfo"= AppDomain.CurrentDomain.BaseDirectory.ToString();
            
return View("Index",r);
        }

    }


<%foreach (ViewDataUploadFilesResult v in this.ViewData.Model)  %>  
<%= String.Format("<li>Uploaded: {0} totalling {1} bytes.</li>",v.Name,v.Length) %>  
<%}
 %>  
这是上面的这个foreach报错。

[当然如果我对求助描述的不确切,大家留言,我会尽力提供更多信息]
问题补充: 第二段代码是在view中的。 谢谢 小眼睛老鼠 的关注,var 是对的,string upItem in Request.Files 这个也没有问题。
Mien的主页 Mien | 菜鸟二级 | 园豆:225
提问于:2008-08-17 09:54
< >
分享
最佳答案
0
<%foreach ( ViewDataUploadFilesResult v in this.ViewData.Model as List<ViewDataUploadFilesResult>) { %> <%= String.Format("<li>Uploaded: {0} totalling {1} bytes.</li>",v.Name,v.Length) %> <%} %>
重典 | 老鸟四级 |园豆:2442 | 2008-08-17 14:02
其他回答(1)
0
没知细看 不过Request.Files这个对象给我的印象应该是个文件对象(这个对象我好像也没用过) 不应该是字符串数组 至于书上的代码不能运行是正常现象 不用奇怪 书上有很多代码都是伪代码 我是学c#的 看你的这段代码 语法上像是c# 但是 我不大记得c#有var 这个类型 还有下面这段 Request.Files[upItem] as HttpPostedFileBase; 明显显示Request.Files应该不是个字符串数组string []
小眼睛老鼠 | 园豆:2774 (老鸟四级) | 2008-08-17 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册