4.MVC框架开发(母版页的应用、按钮导致的Action处理、从界面向控制器传数据和HtmlHelper控件的实现(注册的实现))

1.在视图里如何引入母版页

1)在视图里母版页都是放在View目录下面的Shared文件夹下面

2)母版页里的RenderBody()类似于ASP.NET里面的ContentPalceHolder占位符,但是这个RenderBody()只能出现一次

3)@Url.Content是将虚拟路径转换为物理路径的方法

4)在母版页里如果需要别的占位,则就会需要:RenderSection("占位名字",bool值),在子页面就应该这样使用:@section  占位名字{  }

注:如果RenderSection("占位名字",bool值)中的bool值为true,那么在子页面中这个占位在子页面必须用到,false反之

2.在页面里不允许有多个form,只能有一个form,开发的时候建议采用:

@using (Html.BeginForm("Reg", "User",FormMethod.Post, new{ @class="member_form",name="form1"})
{ //里面就是表单的内容Reg为Action,User为控制器,FormMethod.Post为表单提交为post方式,new{ @class="member_form",name="form1"}是表单属性,其中class是关键字,我们采用了@转义的方法,
 }

3.如果一个一个页面中有不同的按钮,每个按钮导致不同的Action处理,那么这个时候就需要用JavaScript的方式来改变表单提交时候的Action处理(例如:在表单做一个方法serachFun()),代码如下:

 <script language="javascript" type="text/javascript">
        function serachFun() {
            document.formone.action = "/Book/BookSearch";
            document.formone.submit();
    }
    </script>

4.从界面向控制器传数据

1)通过post表单提交时候的数据传递,是通过表单集合,比如:

 [HttpPost]
        public ActionResult Login(FormCollection fom)
        {
            string userName = fom["username"];
            string userPwd = fom["password"];
            var list = bookshop.Users.Where(p => p.LoginId == userName && p.LoginPwd == userPwd).ToList();
            if (list.Count > 0)
            {
                return RedirectToAction("Index", "Book");
            }
            else
            {
                ViewBag.ErrMessage = "<script>alert(‘你输入的账户名或者密码错误‘)</script>";
                return View();
            }
        }

2)在界面中如果要将文本转换成原有的html表示,就用@Html.Raw()方法,比如:

@Html.Raw(ViewBag.ErrMessage)

5.界面中控件的简单说明

对html包装,HtmlHelper这个类,这个类主要就是提供html的一些标签元素的实现,在Razor中应用@Html:

@Html.TextBox("keyword", null, new { @class = "search_key" })
 @*<input type="text" id="keyword" class="search_key" />*@

HtmlHelper控件的实现(注册)

通过模型传递数据的方法

1)将模型的属性映射到表单里的元素名字中,比如映射User这个数据模型,里面有LoginId属性,那么在表单中就有一个name为LoginId的元素

2)当表单向控制器提交数据的时候,方法的参数必须为模型,格式如下:

public ActionResult Reg(MvcBookShop.Models.User UserModel)
        {
            bookshop.Users.Add(UserModel);
            if (bookshop.SaveChanges() > 0)
            {
                ViewBag.MsgRegInfo = "<script>alert(‘您注册成功‘)</script>";
            }
            else
            {
                ViewBag.MsgRegInfo = "<script>alert(‘您注册成功‘)</script>";
            }
            return View();
        }

有错请留步指导,谢谢啦

时间: 2024-10-16 17:15:30

4.MVC框架开发(母版页的应用、按钮导致的Action处理、从界面向控制器传数据和HtmlHelper控件的实现(注册的实现))的相关文章

7.MVC框架开发(创建层级项目)

在一个项目比较大的时候,就会有多个层级项目 1)在项目中选定项目右建新建区域(新的层级项目),项目->右键->添加->区域,构成了一套独立的MVC的目录,这个目录包括Views,Controllers,Models文件夹 2)如何访问Areas里的action,比如areas目录里: 如果要访问ManagerShop的里的Index,应该在其他页面中进行如下设置: @Html.ActionLink("[后台管理]", "Index", new {

5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)

界面表单中的表单元素名字和数据库表的字段名相一一映射(需要哪个表的数据就是那个表的模型(Model)) 在View页面中可以指定页面从属于哪个模型 注:以上的关系可以通过MVC的强类型视图开发来解决我们的开发代码的智能感知 1.强类型视图开发的步骤 1)在页面中指定强类型的类型(一定是引用类型),代码:例: @model List<MyMVCBookShop.Models.Book> 2)从控制器传强类型的数据到View视图里,那么就必须保证传入的数据一定和强类型视图中定义的类型相一致,例:

2.MVC框架开发(视图开发----基础语法)

1.区别普通的html,在普通的html中不能将控制器里面的数据展示在html中. 在MVC框架中,它提供了一种视图模板(就是结合普通的html标签并能将控制器里传出来的数据进行显示) 视图模板特性:他有自己的一套语法规则去显示数据 在ASP.NET中的页面里,通过<%    %>格式来嵌入C#语言的 在MVC框架里视图也是需要嵌入C#语言的,在MVC3.0以后统一都是Razor视图引擎(模板),以@符号开始进行C#语言编写 2.Razor视图语法 以@符号开始,如果是一段程序代码,那么就用{

10.MVC框架开发(Ajax应用)

1.MVC自带的Ajax应用, 使用步骤: 第一步,引入js框架 <script src="../../Scripts/jquery-1.4.4.js" type="text/javascript"></script> <script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></scri

1.MVC框架开发(初识MVC)

1.约定大于配置 Content:存放静态文件(样式表.静态图片等) Controllers:存放控制器类 Models:存放数据模型文件 Scripts:存放脚本文件 Views:存放视图文件,里面的Shared存放公共视图(比如模板) 2.构建model模型 需要创建EF框架,新建一个项目的时候都需要去安装EF框架(目的:引入EF框架所需要的类库) 3.编写MVC 第一步:编写控制器(controller),所有的控制器都必须要求以Controller结尾 第二步:在控制器里写方法 publ

ASP.NET MVC框架开发系列教程

本系列教程是自己在工作中使用到而记录的,如有错误之处,请给与指正 文章目录 MVC4 开篇 第一章 初识MVC4 第二章 下山遇虎(@helper) 第三章 Models模块属性详解 第四章 在MVC4.0中对脚本以及样式表的引用变化 第五章 MVC之Bundle详解

8.MVC框架开发(URL路由配置和URL路由传参空值处理)

1.ASP.NET和MVC的路由请求处理 1)ASP.NET的处理 请求---------响应请求(HttpModule)--------处理请求(HttpHandler)--------把请求的资源处理之后返回给客户端 2)MVC的处理 由ASP.NET衍生出来,也遵循请求.响应.处理.资源返回给客户端的过程 请求-----URLRoutingModule(响应路由请求)-----RoutingTable(路由表)(检索请求路径是否和路由表里的路由匹配)-----生成一个路由映射,生成一个Ro

6.MVC框架开发(文件上传)

1.需要设置表单的enctype="multipart/form-data"属性 2.在控制器中获取表单文件中数据 [HttpPost] public ActionResult AddBook(FormCollection form) { var s = HttpContext.Request.Files["file1"];//获取客户端上载的文件集合 s.SaveAs(HttpContext.Server.MapPath("~/Content/"

3.MVC框架开发(Razor内嵌函数)

1.建立没有返回值的Razor内嵌函数(但是能直接输出内容) 必须以@符号开头,没有返回值但能直接输出内容,比如: @helper showTitle(string strTitle){ if(strTitle.Length > 8){ @(strTitle.Substring(0,8)+"...") //输出内容 }else{ @strTitle //输出内容 } } 2.建立有返回值的Razor内嵌函数 必须以@functions开头且里面是一个静态方法,比如通过图书ISBN