ASP.NET MVC(2)
来源:互联网 发布:mysql怎么删除列 编辑:程序博客网 时间:2024/05/20 18:45
1.把datatable传到前台,使用ViewData传递,采用webform渲染方式,弱类型
还可以使用
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"); }3.HtmlHelper详解Request.Form是获取以POST方式提交的表单数据; Request.QueryString主要是获取地址栏参数或者以Get方式提交的数据 而Request则包含以上两种方式,会在Request.QueryString和Request.Form中都查询一遍变量。但是优先获取GET方式提交的数据,即Request.QueryString
Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。
在MVC中提交过来的表单数据自动放在FormCollection中
在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")%>自动装配,Action中的ViewData的键值和View前台传过去的name一样,那么它会把ViewData中的值对应传过去<%:Html.ActionLink("这次页面", "Register", "Home", new { name = "itcast" }, new { demo = "ss" })%>
使用强类型编程,往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 2
- ASP.NET MVC 2
- ASP.NET MVC(2)
- ASP.NET MVC 2 新功能
- asp.net MVC 2 下载
- ASP.NET MVC雕虫小技 1-2
- ASP.NET MVC 2 Beta 发布
- ASP.NET MVC 小技巧 1-2
- ASP.NET MVC 2 RC 发布
- ASP.NET MVC 2 转换工具
- ASP.NET MVC 2示例Tailspin Travel
- ASP.NET MVC 2示例Tailspin Travel
- ASP.NET MVC 2 模型验证
- ASP.NET MVC 2中的数据验证
- ASP.NET MVC 2开发实战
- asp.net mvc 2被遗忘的
- ASP.NET MVC 2中使用AJAX
- asp.net mvc view 使用小结2
- UML——对象图
- 怪异模式(Quirks Mode)对 HTML 页面的影响
- Myeclipse 加载项目building workspace过久
- 导入文件 jquery.js文件报红解决办法
- jQuery选择器全解
- ASP.NET MVC(2)
- java.util.concurrent——TimeUnit
- SQLServer数据库连接失败解决方法
- NOIP2000方格取数
- 图-> DFS
- 黑马程序员---Java线程与同步
- path加速球
- ping程序及ICMP协议程序的实现
- web ix 学习(一) 首页 tree