当前位置: 代码迷 >> ASP.NET >> .net MVC3(Razor)有关问题
  详细解决方案

.net MVC3(Razor)有关问题

热度:2472   发布时间:2013-02-25 00:00:00.0
.net MVC3(Razor)问题
有一个按钮,单击后出现一个对话框的网页:
HTML code
@{    Layout = null;}<script type="text/javascript" src="../../Scripts/jquery-1.4.4.min.js"></script><script type="text/javascript">    function uploadImage() {        if ($("#uploadIMG").val().length < 1) {            alert("Choisir une image.");            return false;        } else {            $("#formtest").submit();        }    } </script><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>Upload</title></head><body><form enctype="multipart/form-data" method="post" id="formtest" action="uploadIMG/Upload">  <text>Choisir une image:</text><input type="file" name="fileIMG" id="uploadIMG" /><br />  <input type="button" id="btntest" value="Upload" onclick="uploadImage()"/>  </form><img src="/Image/@ViewBag.FileName" /></body></html>


里面有一个form, 一个文件选择器一个按钮,应该从代码中开出来了,当点击这里的按钮相当于一个submit的操作,可以看下javascrip的函数,点击这个按钮后执行后台controller:
C# code
public class UploadIMGController : Controller    {        //        // GET: /UploadIMG/        public void Upload()        {            HttpPostedFileBase file = Request.Files["fileIMG"];            string nomstr=System.Guid.NewGuid().ToString().Substring(0, 6);            if (file.ContentLength > 0)            {                file.SaveAs(Server.MapPath("~/Image/") + nomstr + System.IO.Path.GetExtension(file.FileName));            }            //ViewBag.FileName = System.IO.Path.GetFileName(file.FileName);            ViewBag.FileName = nomstr + System.IO.Path.GetExtension(file.FileName);        }    }

可以看到这个控制器执行的是保存上传文件的一个操作,执行这个控制器的时候也会弹出一个新的空白网页,即使我没有给他加view. 而我想要的是执行这段上传文件操作后,不弹出空白网页,并且把上传的文件的地址传递出来,最后的结果就是:在之前描述的那个html对话框中,当点击上传,还是在这同一个对话框,里面出现一个上传图片的缩略图,图下面跟着这个图片的地址.


不知道我的描述准确不, 大家有什么好的建议,或者办法帮帮我吧,谢谢了。

------解决方案--------------------------------------------------------
页面加一个隐藏的iframe,把上面的那个form的target设为那个隐藏的iframe的name
  相关解决方案