ASP.NET MVC(2)
2015-10-10 14:26
716 查看
1.把datatable传到前台,使用ViewData传递,采用webform渲染方式,弱类型
还可以使用
2.从view获取数据方式,post提交过来,一般用FormCollection集合来获取或者用Request
3.HtmlHelper详解
在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟
微软的MVC就是传统的请求处理响应的回归。所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然。但是如果手写Html标签效率又比较低,可重用度比较低。微软为开发人员快速开发前台页面提供了丰富的HtmlHelper的辅助类,辅助我们快速开发前台页面,也提供了可扩展的接口,前台页面的标签可以可以做到高度可重用。
HtmlHelper还继承了Model元数据的校验、ViewData和ViewBag数据绑定装配等自动化功能,也是非常实用的功能
HtmlHelper还提供了强类型标标签更是在开发阶段就实现编译检测。提高了编码的效率。
引列,View页跳转到其它页面,使用注册Url.Action或者Html.ActionLink更方便,HtmlHelper提供了简化html标签的语法
自动装配,Action中的ViewData的键值和View前台传过去的name一样,那么它会把ViewData中的值对应传过去
使用强类型编程,往ViewData.Model传实体
创建视图时,就创建强类型视图,选择类型
在强类型编程中使用TextBoxFor比TextBox区别在于强类型,不会错,两个都能从后台获取值
<%:%> 相当于<%= Html.Encode()%>
Html.Raw():也可以把字符串原封不动的输出
到页面上,避免被编码化。
5.给Html写扩展方法
扩展方法的三要素:静态类、静态方法、this关键字,扩展方法就是如此,this 要扩展的类,后面跟参数
还可以使用
ViewBag,danamic动态类型,来添加前台数据
ViewData["data"]= SqlHelper.ExecuteDataTable(sqlStr);
<div> <% DataTable dt = (DataTable)ViewData["data"]; %> <table> <thead> <tr> <td>Login</td> <td>Email</td> <td>Mobile</td> </tr> </thead> <tbody> <% foreach (DataRow v in dt.Rows) { %> <tr> <td><%: v["Login"] %></td> <td><%: v["Email"] %></td> <td><%: v["Mobile"] %></td> </tr> <%} %> </tbody> </table> </div>
2.从view获取数据方式,post提交过来,一般用FormCollection集合来获取或者用Request
public ActionResult ProcessAdd(FormCollection collection) { string userName = Request["userName"]; string userName = Request.Form["userName"]; string userName.Request.QueryString["userName"]; string userName=collection["userName"] return RedirectToAction("Index"); } Request.Form是获取以POST方式提交的表单数据; Request.QueryString主要是获取地址栏参数或者以Get方式提交的数据 而Request则包含以上两种方式,会在Request.QueryString和Request.Form中都查询一遍变量。但是优先获取GET方式提交的数据,即Request.QueryStringRequest:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。在MVC中提交过来的表单数据自动放在FormCollection中
3.HtmlHelper详解
在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式,毕竟
微软的MVC就是传统的请求处理响应的回归。所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然。但是如果手写Html标签效率又比较低,可重用度比较低。微软为开发人员快速开发前台页面提供了丰富的HtmlHelper的辅助类,辅助我们快速开发前台页面,也提供了可扩展的接口,前台页面的标签可以可以做到高度可重用。
HtmlHelper还继承了Model元数据的校验、ViewData和ViewBag数据绑定装配等自动化功能,也是非常实用的功能
HtmlHelper还提供了强类型标标签更是在开发阶段就实现编译检测。提高了编码的效率。
引列,View页跳转到其它页面,使用注册Url.Action或者Html.ActionLink更方便,HtmlHelper提供了简化html标签的语法
<a href="/home/register">注册页面</a> <a href="<%: Url.Action("Register","Home") %>">注册</a> <%:Html.ActionLink("这次页面", "Register", "Home")%> <%:Html.ActionLink("这次页面", "Register", "Home", new { name = "itcast" }, new { demo = "ss" })%>
自动装配,Action中的ViewData的键值和View前台传过去的name一样,那么它会把ViewData中的值对应传过去
使用强类型编程,往ViewData.Model传实体
public ActionResult HtmlHelper() { UserInfo user = new UserInfo() { Info = "灵儿", Name = "备足", Note = "只是" }; ViewData["user"] = user; ViewData.Model = user; return View("Html2"); }
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MVCExpression.Models.UserInfo>" %>
<%:Model.Info %>
创建视图时,就创建强类型视图,选择类型
MVCExpression.Models.UserInfo
在强类型编程中使用TextBoxFor比TextBox区别在于强类型,不会错,两个都能从后台获取值
<%:Html.TextBox("Name") %>
<%:Html.TextBoxFor(u => u.Name) %>
<%:%> 相当于<%= Html.Encode()%>
Html.Raw():也可以把字符串原封不动的输出
到页面上,避免被编码化。
<%:Html.Raw("<p>sldjfl<p>") %> <%:new HtmlString("<p>sldjfl<p>") %> <%:new MvcHtmlString("<p>sldjfl<p>") %>
5.给Html写扩展方法
扩展方法的三要素:静态类、静态方法、this关键字,扩展方法就是如此,this 要扩展的类,后面跟参数
namespace System.Web.Mvc { public static class MyHtmlHelperExt { public static HtmlString MyLabel(this HtmlHelper helper, string text) { return new HtmlString(string.Format("<span>{0}</span>", text)); } } }
相关文章推荐
- [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则
- ASP.NET MVC Controller的激活机制
- 【翻译】ASP.NET MVC 5属性路由(转)
- 利用Aspose.Cells 组件导出数据到excel
- struts2 ireport jasperReport
- ASP.NET中readonly与const的区别详解
- ASP.NET数组删除重复值实现代码
- ASP基础入门第四篇(脚本变量、函数、过程和条件语句)
- asp.net ListBox控件添加双击事件
- ASP基础入门第三篇(ASP脚本基础)
- ASP.net体系
- 配置SpringAop时需要用到的AspectJ表达式
- Asp.Net 之 当前上下文中不存在名称" Server "
- ASP.NET RegularExpressionValidator 控件
- ASP.NET MVC(1)
- Code Forces 583 A. Asphalting Roads(水~)
- ASP.NET数组删除重复值实现代码
- ASP.NET中readonly与const的区别详解
- ASP.NET中MVC传递数据的几种形式总结
- ASP.NET本调试下配置Web.config识别json