用TempData不行吖???
帮忙看一下我代码:
 public ActionResult Create(UserInfoModels user)
        {
            try
            {
                // TODO: Add insert logic here
                user.File = TempData["id"].ToString();
                UserInfoBLL userInfo = new UserInfoBLL();
                userInfo.Update(user);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        } public ActionResult Import(HttpPostedFileBase FileData, string folder, string name)
        {
            string result = "";            if (null != FileData)
            {
                try
                {
                    result = Path.GetFileName(FileData.FileName);//获得文件名
                    TempData["id"] = saveFile(FileData, folder, result);//保存文件
                }
                catch
                {
                    result = "";
                }
            }
            return Content(result);
        }

解决方案 »

  1.   

    我想上传一个文件返回一个值,再把这个值和其他信息一起添加到数据库中,比如用户信息:姓名,性别,头像
    我上传一个头像返回一个ID,再把ID和姓名,性别一起添加到数据库中
      

  2.   

    你应该在上传文件后 把需要的值返回,这样就可以之后把它和其他信息一起处理了就像 你现在的return Content(result); 一样
      

  3.   

    假如说我现在result,就是我想返回的值,那该怎么获取呢???
      

  4.   

    Import页是用框架嵌套在CREATE中的吗,是的话在添加页放个隐藏域,上传成功时parent.**赋值,用COOKIE也行啊,方法很多,关键看你二个ACTION是怎么关联的
      

  5.   

    Import就只是ACtion用脚本触发这个Action,import和Create都在Create页中触发的。就是我想在添加页面上传文件,上传文件用的uploadify上传的,我想点上传返回一个ID,在点添加按钮,和其他信息一起添加到数据库中
      

  6.   


    上传你是怎么做的,用form 表单提交的还是 iframe 提交的
      

  7.   

    上传用的是uploadify那个插件,都是JS代码
      

  8.   

    这是上传文件的Aciton,然后写的JS来触发Import
    public ActionResult Import(HttpPostedFileBase FileData, string folder, string name)
            {
                string result = "";            if (null != FileData)
                {
                    try
                    {
                        result= Path.GetFileName(FileData.FileName);//获得文件名
                        //string ext = Path.GetExtension(FileData.FileName);//获得文件扩展名
                        //string saveName = "uploadfile" + ext;//实际保存文件名
                         saveFile(FileData, folder, result);//保存文件
                    }
                    catch
                    {
                        result = "";
                    }
                }
                return Content(result);
            }        [NonAction]
            private void saveFile(HttpPostedFileBase postedFile, string filepath, string saveName)
            {
                string phyPath = Request.MapPath("~" + filepath + "/");
                if (!Directory.Exists(phyPath))
                {
                    Directory.CreateDirectory(phyPath);
                }
                try
                {
                    postedFile.SaveAs(phyPath + saveName);
                    UploadBLL upload = new UploadBLL();
                    UploadFileModels uploadfile = new UploadFileModels();
                    uploadfile.FileName = saveName;
                    uploadfile.FilePath = phyPath + saveName;
                    upload.Update(uploadfile);
                    //UserInfoModels userInfo = new UserInfoModels();
                    //userInfo.File =upload.GetID(saveName);
                }
      

  9.   

    那它就是 iframe 上传的应该会有回调函数的,你在回调函数中接收就可以的
      

  10.   

           function fun(event, queueID, fileObj, response, data) {
                if (response != "") {
                    showInfo("成功上传" + response, true); //showInfo方法设置上传结果     
                }
                else {
                    showInfo("文件上传出错!", false);
                }
            }
            //显示提示信息,textstyle2为绿色,即正确信息;textstyl1为红色,即错误信息
            function showInfo(msg, type) {
                var msgClass = type == true ? "textstyle2" : "textstyle1";
                $("#result").removeClass();
                $("#result").addClass(msgClass);
                $("#result").html(msg);
            }
    这是获取的那个,关键是我想在Create那个Action中得到那个Id
      

  11.   

    用个隐藏域 <input type='hidden' 来存储返回的信息 可以用字符串,也可以用json 字符串就需要分隔 然后处理下就是把你现在的   return Content(result);中的result 加上 你需要的ID ,一起返回在 fun 这个JS函数中 进行字符串处理
      

  12.   

    弱弱的问一下,我在Fun函数中获得了ID,后台Create这个Action怎么获取呀
      

  13.   

    用个隐藏域 <input type='hidden' 来存储可能会是<input type='hidden' name='UserInfoModels.ID' />这样表单提交的时候 就可以获取到了
      

  14.   

    页面传值 或者 用 Session
      

  15.   

    两个视图页面对应的Action在同一控制器中
      

  16.   

     @Html.ActionLink("返回", "Create")这里可以获得fun函数中的值吗?同一页面
     
      

  17.   

    这个 我知道的是一个页面只能对应一个action
      

  18.   

    用@Html.ActionLink的重载方法 可以带参数MVC 中使用SESSION 和 webform 一样在 action 中写