×

mvc实例

c#.net MVC 实例?想架构一个PHP 应用MVC的系统的例子

admin admin 发表于2024-01-23 09:35:05 浏览32 评论0

抢沙发发表评论

这篇文章给大家聊聊关于mvc实例,以及c#.net MVC 实例对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

c#.net MVC 实例

我感觉你是否忽略了最精髓的和严谨的东西?

VS2010或者任意版本,新建MVC项目时,选择样板站

里面的代码绝对是精髓及严谨完整的

想架构一个PHP 应用MVC的系统的例子

官方出的zend framework是比较大型的 在官网有下国产的THINKPHP是轻量型MVC框架 适合入门用

mvc视图中怎么上传图片并显示

如果只是上传的话那太容易了,如果还要显示那就难了,因为要显示的话就不能只向服务器提交一次请求,必须异步提交。下面的例子是我亲自写的,异步提交上传图片并预览。全部代码都在。

首先建一个html文件,复制以下html文本。使用说明:

  1. 引用jquery两个js文件,网上自己搜吧,到处都有。

    《script src="jquery-1.4.2.min.js" type="text/javascript"》《/script》

    《script src="jquery.form.js" type="text/javascript"》《/script》

2.添加两个文本框,第一个ID必须是“bigImage1”,第二个必须是“smallbigImage1”。

《input type="text" name="url1" id="bigImage1" style="width:150px;" onclick="selectImage(this)" /》

    《input type="hidden" name="smallUrl1" id="smallbigImage1" value="" /》 

当点击第一个文本框时,弹出一个上传窗口,选择一张图片并点“上传”,上传成功后可预览图片。此过程会在服务器上把原图片生成一张缩略图,并把原图URL和缩略图URL一起以JSON格式返回到前台页面,临时显示缩略图。当点击“确定”时,它会把两个URL添加到两个对应ID的文本框。第二个框是隐藏的,给用户的感觉就像是只返回一个URL一样。

3.请自己写脚本 获得两个文本框的值,再进行你想做的操作。

4.id为"uploadDiv"的DIV是一个整体,不可分割。主要是提供一个文件类型的表单,用于异步上传。请修改action的URL为你上传的后台路径。

下面是HTML代码

《!DOCTYPE html》《html》《head》    《title》Index《/title》    《script src="jquery-1.4.2.min.js" type="text/javascript"》《/script》    《script src="jquery.form.js" type="text/javascript"》《/script》    《script type="text/javascript"》        function selectImage(obj) {            var inputId = obj.id;            document.getElementById(’btnSure’).setAttribute(’inputId’, inputId);            var x = window.event.x;            var y = window.event.y;            var uploadDiv = document.getElementById(’uploadDiv’);            uploadDiv.style.left = x + 10 + ’px’;            uploadDiv.style.top = y + 10 + ’px’;            uploadDiv.style.position = ’fixed’;            uploadDiv.style.display = ’inline’;        }        function closeDiv() {            document.getElementById(’btnSure’).style.display = ’none’;            document.getElementById(’showImage’).style.display = ’none’;            document.getElementById(’uploadDiv’).style.display = ’none’;        }        function makeSure(obj) {            var inputId = obj.getAttribute(’inputId’);            document.getElementById(inputId).value = document.getElementById(’showImage’).getAttribute(’big’);            document.getElementById(’small’ + inputId).value = document.getElementById(’showImage’).getAttribute(’small’);            document.getElementById(’image’ + inputId).src = document.getElementById(’showImage’).getAttribute(’small’);            document.getElementById("btnSure").style.display = ’none’;            document.getElementById(’showImage’).style.display = ’none’;            document.getElementById(’uploadDiv’).style.display = ’none’;        }        $(function () {            //异步上传图片            $(’#btnUpload’).click(function () {                if ($(’#upImage’).val() == ’’) {                    alert(’请选择一张图片文件’);                    return;                }                $(’#fileForm’).ajaxSubmit({                    success: function (msg) {                        var strJSON = msg; //得到的JSON                        var image = eval("(" + strJSON + ")"); //转换后的JSON对象                        document.getElementById(’uploading’).style.display = ’none’;                        $(’#showImage’).css(’display’, ’inline’);                        $(’#showImage’).attr(’src’, image.big);                        $(’#showImage’).attr(’big’, image.big);                        $(’#showImage’).attr(’small’, image.small);                        $(’#btnSure’).css(’display’, ’inline’);                    }                });                document.getElementById(’uploading’).style.display = ’block’;            });        });    《/script》《/head》《body》    《p》上传单个文件或图片《/p》《div》    《input type="text" name="url1" id="bigImage1" style="width:150px;" onclick="selectImage(this)" /》    《input type="hidden" name="smallUrl1" id="smallbigImage1" value="" /》 《/div》《div id="uploadDiv" style="width: 400px; height: 280px; border: 1px solid #9eb9f1;    background-color: #e1eaea; text-align:left; display:none; z-index:999;"》    《div》        《div style="width: 376px; float: left; padding-left:4px; padding-top:4px; padding-bottom:4px; overflow:hidden;"》            《form id="fileForm" method="post" action="/Home/UploadImage" enctype="multipart/form-data" 》                《input type="file" id="upImage" name="upImage" style="padding-bottom: 1px; padding-left: 8px;                    padding-right: 8px; height: 24px; width:220px; padding-top: 1px;" /》                《input type="button" id="btnUpload" value="上传" style="padding-bottom: 1px; padding-left: 8px; padding-right: 8px;                    height: 24px; cursor: pointer; padding-top: 1px; line-height: 12px;" /》                《span id="uploading" style="color:#ff0000; display:none; font-size:14px; font-weight:bold;"》上传中......《/span》                《input type="button" id="btnSure" value="确定" style="padding-bottom: 1px; padding-left: 8px; padding-right: 8px;                height: 24px; cursor: pointer; padding-top: 1px; line-height: 12px; display:none; background-color:#9fd0f9;" onclick="makeSure(this)" /》            《/form》        《/div》        《div style="width: 20px; height: 30px; float: right; "》            《div style="width: 20px; height: 20px; background-color:#9fc0f7; font-size:20px; text-align:center; line-height:16px; cursor:pointer;" onclick="closeDiv()"》X《/div》        《/div》    《/div》    《div style="width:398px; height:240px; text-align:center; overflow:hidden; "》        《img id="showImage" alt="预览图片" src="" style="width: 340px; display:none;" /》    《/div》《/div》《/body》《/html》

下面是后台代码

返回到前台页面的JSON格式对象是以类的对象。    public class ReturnImage    {        public string big { get; set; }        public string small { get; set; }        public string isSuccessfull { get; set; }        public string message { get; set; }    }对于上传和生成缩略图,请自行完成,以下是ASP.NET MVC的例子。    public class HomeController : Controller    {        //        // GET: /Home/        public ActionResult Index()        {            return View();        }        /// 《summary》        /// 上传图片        /// 《/summary》        /// 《returns》《/returns》        public ActionResult UploadImage()        {            //定义错误消息            JsonResult msg = new JsonResult();            try            {                //接受上传文件                HttpPostedFileBase postFile = Request.Files;                if (postFile != null)                {                    DateTime time = DateTime.Now;                    //获取上传目录 转换为物理路径                    string uploadPath = Server.MapPath("~/UploadFiles/" + time.Year + "/" + time.ToString("yyyyMMdd") + "/");                    //文件名                    string fileName = time.ToString("yyyyMMddHHmmssfff");                    //后缀名称                    string filetrype = System.IO.Path.GetExtension(postFile.FileName);                    //获取文件大小                    long contentLength = postFile.ContentLength;                    //文件不能大于2M                    if (contentLength 《= 1024 * 2048)                    {                        //如果不存在path目录                        if (!Directory.Exists(uploadPath))                        {                            //那么就创建它                            Directory.CreateDirectory(uploadPath);                        }                        //保存文件的物理路径                        string saveFile = uploadPath + fileName + "_big" + filetrype;                        try                        {                            //保存文件                            postFile.SaveAs(saveFile);                            //保存缩略图的物理路径                            string small = uploadPath + fileName + "_small" + filetrype;                            MakeThumbnail(saveFile, small, 320, 240, "W");                            ReturnImage image = new ReturnImage();                            image.big = "/UploadFiles/" + time.Year + "/" + time.ToString("yyyyMMdd") + "/" + fileName + "_big" + filetrype;                            image.small = "/UploadFiles/" + time.Year + "/" + time.ToString("yyyyMMdd") + "/" + fileName + "_small" + filetrype;                            msg = Json(image);                        }                        catch                        {                            msg = Json("上传失败");                        }                    }                    else                    {                        msg = Json("文件大小超过限制要求");                    }                }                else                {                    msg = Json("请选择文件");                }            }            catch (Exception e)            {                ;            }            msg.ContentType = "text/html";            return msg;        }        /// 《summary》                由于回答超过最大限制,/// 生成缩略图 的代码请向我索取

mvc实现动态图片切换.net

我是先将图片信息放到了页面的某个隐藏域中,如:后台在Page_Load的时候先从数据库中取图片:protected void Page_Load(object sender, EventArgs e) { Hidden2.Value = ""; LoginBLL log = new LoginBLL(); DataSet ds = log.GetImage("1");//获取图片信息 if (ds != null && ds.Tables.Rows.Count 》 0) { for (int i = 0; i 《 ds.Tables.Rows.Count; i++) { Hidden1.Value += ds.Tables.ToString() + ","; } } }这是前台页面,由于隐藏域中已经有值,所以我将取出来的值用JS加CSS样式来实现的,能够达到每五秒钟切换一次图片,点击图片,可以浏览到大图。我将取出的图片用“,”进行连接,然后再通过JS拆分后分别赋值创建并赋给对象,以达到动态切换图片的效果。《!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"》《html》《head》《title》《/title》《/head》《body》《input id="Hidden1" type="hidden" runat="server" /》《script type="text/javascript" language="javascript"》var widths=500; //焦点图片宽var w=2;var widthss=widths+w;var heights=221; //焦点图片高//var heightss=heightss+w;//var heightt=32; //总条数//img1=new Image();在这里是声明了一个图片元素的对象//后面是对图像的属性进行赋值或设置,如imgs.src="xxxx.jpg"是指定图片的索引地址.//这个代码一般用于head区,用于预加载图片,即加快图片显示.//只有用new Images()得到的图片IE7才认,//而IE6和firefox可认得imgUrl="/y9q9ms7lbgbt.jpg";得到的图片var str=document.getElementById(’Hidden1’).value.split(’,’);if(str!=""){ for(var i=0;i《str.length-1;i++) {//获取图片的数量,并创建对象 eval(’img’+(i+1)+’=new Image();’); eval(’img’+(i+1)+’.src="’+str+’";’); eval(’url’+(i+1)+’=new Image();’); eval(’url’+(i+1)+’.src="’+str+’";’); }}var counts=str.length-1; var nn=1; //当前所显示的滚动图var key=0; //标识是否为第一次开始执行var tt; //标识作用function change_imgbaner(){if(key==0){key=1;} //如果第一次执行KEY=1,表示已经执行过一次了。else if(document.all)//document.all仅IE6/7认识,firefox不会执行此段内容{document.getElementById("pic").filters.Apply(); //将滤镜应用到对像上document.getElementById("pic").filters.Play(duration=1); //开始转换document.getElementById("pic").filters.SlideStyle=’SWAP’;//转换效果document.getElementById("pic").filters.Bands=1;// with(document.getElementById("pic").filters)// { Duration=2;SlideStyle=’SWAP’;Bands=1; }}eval(’document.getElementById("pic").src=img’+nn+’.src’); //替换图片eval(’document.getElementById("url").href=url’+nn+’.src’); //替换URL//eval(’document.getElementById("title").value=txt’+nn+’.txt’); //替换ALTfor (var i=1;i《=counts;i++){document.getElementById("xxjdjj"+i).className=’axx’; //将下面黑条上的所有链接变为未选中状态}document.getElementById("xxjdjj"+nn).className=’bxx’; //将当前页面的ID设置为选中状态nn++;if(nn》counts){nn=1;} //如果ID大于总图片数量。则从头开始循环tt=setTimeout(’change_imgbaner()’,5000); //在4秒后重新执行change_imgbaner()方法.}function changeimg(n)//点击黑条上的链接执行的方法。{nn=n; //当前页面的ID等于传入的N值,window.clearInterval(tt); //清除用于循环的TT//重新执行change_imgbaner();但change_imgbaner()内所调用的图片ID已经在此处被修改,会从新ID处开始执行.tt=setTimeout(’change_imgbaner()’,500);//change_imgbaner();}function aHref(){return;}//样式表document.write(’《style》’);document.write(’.axx{padding:1px 7px;margin:0 5px;}’);document.write(’a.axx:link,a.axx:visited{text-decoration:none;color:#000;line-height:12px;font:12px sans-serif;background:#fff;border:1px solid #3467cc}’);document.write(’a.axx:active,a.axx:hover{text-decoration:none;color:#fff;line-height:12px;font:12px sans-serif;background:#666;}’);document.write(’.bxx{padding:1px 7px;margin:0 5px;}’);document.write(’a.bxx:link,a.bxx:visited{text-decoration:none;color:#fff;line-height:14px;font:14px sans-serif;background:#95bdeb;font-weight:900}’);document.write(’a.bxx:active,a.bxx:hover{text-decoration:none;color:#fff;line-height:14px;font:14px sans-serif;background:#ff9900;font-weight:900}’);document.write(’《/style》’);//内容部分document.write(’《div style="width:’+widthss+’px;height:’+heights+’px;overflow:hidden;text-overflow:clip;float:left;"》’);document.write(’《div》《a id="url" target="_blank"》《img id="pic" style="border:0px #cbcbcb solid;FILTER: progid:DXImageTransform.Microsoft.Slide(duration=1,slidestyle=SWAP,Bands=1)" width=’+widths+’ height=’+heights+’ /》《/a》《/div》’);document.write(’《div style="background: transparent;width:98%;text-align:right;top:-30px;position:relative;margin:1px;height:32px;border:0px;padding-top:1px;z-index:0;"》《div》’);for(var i=1;i《counts+1;i++){document.write(’《a href="javascript:aHref();" id="xxjdjj’+i+’" class="axx" target="_self" onmouseover="javascript:changeimg(’+i+’);"》’+i+’《/a》’);}document.write(’《/div》《/div》《/div》’);//开始执行滚动操作change_imgbaner();--》《/script》《/body》《/html》 PS:MVC框架无非就是通过某个框架结构来获取需要的结果而已,你所要的效果与MVC框架并无直接关系,只是获取图片的集合需要通过MVC的架构关系来读取,通过视图层调用业务层的方法,业务层再通过数据访问层从数据库获取数据,再返回给业务逻辑层,进而再返回给视图层,最终还是由视图层来对返回的结果进行处理显示在页面上,而你需要的不就是视图层来显示图片切换的效果吗?我将从数据库取图片的步骤省略了,我用的也是三层架构,注意:LoginBLL log = new LoginBLL();DataSet ds = log.GetImage("1");//获取图片信息我的这一步就是获取图片信息,调用的是业务逻辑层的某个接口下的方法,因此接口名后面带有BLL,而在我的DataAccess类下,反射创建类的实例,将某些类的模块反射给接口,而真正与数据库交互的就是这些类,而后面的HTML代码则是对你图片进行切换的JS和CSS样式,通过它们来达到想要的效果,所以你所讲的效果与MVC架构并无太大关系。

OK,关于mvc实例和c#.net MVC 实例的内容到此结束了,希望对大家有所帮助。