HtmlHelper类
<%Html.
MVC1
<%:Html.TextBoxFor("PropertyName")%>
MVC2
<%:Html.TextBoxFor(m=>m.PropertyName)%>
Html.Encode
等价于:
<%:%>
Html.TextBox
<%:Html.TextBox("name")%>
等价于
<input id="name" name="name" type="text" value=""/>
强类型
public ActionResult Edit(int id)
{
Var product =new Product{Name="danny"}
ViewData["Product"]=product;
return View();
}
View层
<%:Html.TextBox("Product.Name")%>
Html显示
<input id="Product_name" name="Product.Name" type="text" value="danny"/>
----------------------------------------
<%:Html.TextBox("Name","danny")%>
<%:Html.TextBoxFor(m=>m.Name,null,new{@class="cl1"})%>
<input class="cl1" id="Name" name="Name" type="text" value="danny"/>
Html.ActionLink和Html.RouteLink
这两控件都根据用户输入生成导航信息
ActionLink根据生成调用另外Controller的链接
调用同一个controller的另一个action
<%:Html.ActionLink("链接文字","anotherAction")%>
运行结果
<a href="/Home/anotherAction">链接文字</a>
另一个controller的另一个action
<%:Html.ActionLink("链接文字","Withdraw","Account")%>
<%:Html.ActionLink("链接文字","Withdraw","Account",new{id=34231},null)%>
<%:Html.ActionLink("链接文字","About","Account",null,new{title="about"})%>
RouteLink
<%:Html.RouteLink("链接文字",new{action="anotherAction"})%>
Html.BeginForm
完全模拟<form>标记
1、
<%using(Html.BeginForm(){%>
一些Html元素,比如textbox
<%}%>
2、
<%Html.BeginForm();%>
一些Html元素,比如textbox
<%Html.EndForm();%>
Html.Hidden
用于生成隐藏文本
<%:Html.Hidden("guidno","xx-xx-xx")%>
输出结果
<input id="guidno" name="guidno" type="hidden" value="xx-xx-xx"/>
强类型支持
<%:Html.HiddenFor(m=>m.Guid)%>
Html.DropDownList和Html.ListBox
用于显示列表或选择值
用于限制用户的输入
public ActionResult Edit(int id){
Nodb context=new Nodb();
var product=context.ProductS.Single(p=>p.ProductID==id);
ViewData["CategoryId"]=from c in p.Categrories
select new SelectListItem{
Text =c.CategoryName,
value=c.CategroyID,
selected=(c.CategoryID==p.CategoryID)
};
return View(Product);
}
<%:Html.DropDownList("CategoryId")%>
强数据类型
<%:Html.DropDownListFor(m=>m.categoryid)%>
Html.Password
Password的工作方式和textbox一样,只是提交以后数据会自动清空
<%:Html.Password("upwd")%>
返回
<input id="my password" name="upwd" type="password" value="*"/>
强类型支持
<%:Html.Password(m=>m.upwd)%>
Html.RadioButton
用户选择其一
<%:Html.RadioButton("color","red")%>
<%:Html.RadioButton("color","yellow","true")%>
结果
<input id="color" name="color" type="radio" value="red">
<input checked="checked" id="color" name="color" type="radio" value="yellow">
Html.Partial和Html.RenderPartial
用于输出不完整的Html片段
aspx页面可以
public void Partial(String partialViewName);
public void Partial(String partialViewName,object model);
public void Partial(String partialViewName,ViewDataDictionary viewData);
public void Partial(String partialViewName,object model,ViewDataDictionary viewData);
<%:Html.Partial("MyUserControl");%>
<%Html.RenderPartial("MyUserControl");%> //html response.write
Html.Action和Html.RenderAction
用于实现指定controller的指定的Action调用
public class MyController{
public ActionResult Index(){
return View();
}
[ChildActionOnly]
public ActionResult Menu(){
var menu=GetMenu();
return PartialView(menu);
}
}
<%@Control Inherits="System.Web.Mvc.ViewUserControl<Menu>"%>
<ul>
<%foreach(var item in Model.MenuItem){%>
<li><%=item%></li>
<%}%>
</ul>
<%=Html.Action("Menu")%>
不能用URL直接调用。
RenderAction
传递参数
public class MenuOptions{
public int Width{get;set;}
public int Height{get;set;}
}
[ChildActionOnly]
[ActionName="coolMenu"]
public ActionResult Menu(MenuOptions options){
return PartialView(options);
}
<%=Html.Action("Menu",new{options=new MenuOptions{width=400,Height=500}})%>
2011-4-14 22:52 danny
<%Html.
MVC1
<%:Html.TextBoxFor("PropertyName")%>
MVC2
<%:Html.TextBoxFor(m=>m.PropertyName)%>
Html.Encode
等价于:
<%:%>
Html.TextBox
<%:Html.TextBox("name")%>
等价于
<input id="name" name="name" type="text" value=""/>
强类型
public ActionResult Edit(int id)
{
Var product =new Product{Name="danny"}
ViewData["Product"]=product;
return View();
}
View层
<%:Html.TextBox("Product.Name")%>
Html显示
<input id="Product_name" name="Product.Name" type="text" value="danny"/>
----------------------------------------
<%:Html.TextBox("Name","danny")%>
<%:Html.TextBoxFor(m=>m.Name,null,new{@class="cl1"})%>
<input class="cl1" id="Name" name="Name" type="text" value="danny"/>
Html.ActionLink和Html.RouteLink
这两控件都根据用户输入生成导航信息
ActionLink根据生成调用另外Controller的链接
调用同一个controller的另一个action
<%:Html.ActionLink("链接文字","anotherAction")%>
运行结果
<a href="/Home/anotherAction">链接文字</a>
另一个controller的另一个action
<%:Html.ActionLink("链接文字","Withdraw","Account")%>
<%:Html.ActionLink("链接文字","Withdraw","Account",new{id=34231},null)%>
<%:Html.ActionLink("链接文字","About","Account",null,new{title="about"})%>
RouteLink
<%:Html.RouteLink("链接文字",new{action="anotherAction"})%>
Html.BeginForm
完全模拟<form>标记
1、
<%using(Html.BeginForm(){%>
一些Html元素,比如textbox
<%}%>
2、
<%Html.BeginForm();%>
一些Html元素,比如textbox
<%Html.EndForm();%>
Html.Hidden
用于生成隐藏文本
<%:Html.Hidden("guidno","xx-xx-xx")%>
输出结果
<input id="guidno" name="guidno" type="hidden" value="xx-xx-xx"/>
强类型支持
<%:Html.HiddenFor(m=>m.Guid)%>
Html.DropDownList和Html.ListBox
用于显示列表或选择值
用于限制用户的输入
public ActionResult Edit(int id){
Nodb context=new Nodb();
var product=context.ProductS.Single(p=>p.ProductID==id);
ViewData["CategoryId"]=from c in p.Categrories
select new SelectListItem{
Text =c.CategoryName,
value=c.CategroyID,
selected=(c.CategoryID==p.CategoryID)
};
return View(Product);
}
<%:Html.DropDownList("CategoryId")%>
强数据类型
<%:Html.DropDownListFor(m=>m.categoryid)%>
Html.Password
Password的工作方式和textbox一样,只是提交以后数据会自动清空
<%:Html.Password("upwd")%>
返回
<input id="my password" name="upwd" type="password" value="*"/>
强类型支持
<%:Html.Password(m=>m.upwd)%>
Html.RadioButton
用户选择其一
<%:Html.RadioButton("color","red")%>
<%:Html.RadioButton("color","yellow","true")%>
结果
<input id="color" name="color" type="radio" value="red">
<input checked="checked" id="color" name="color" type="radio" value="yellow">
Html.Partial和Html.RenderPartial
用于输出不完整的Html片段
aspx页面可以
public void Partial(String partialViewName);
public void Partial(String partialViewName,object model);
public void Partial(String partialViewName,ViewDataDictionary viewData);
public void Partial(String partialViewName,object model,ViewDataDictionary viewData);
<%:Html.Partial("MyUserControl");%>
<%Html.RenderPartial("MyUserControl");%> //html response.write
Html.Action和Html.RenderAction
用于实现指定controller的指定的Action调用
public class MyController{
public ActionResult Index(){
return View();
}
[ChildActionOnly]
public ActionResult Menu(){
var menu=GetMenu();
return PartialView(menu);
}
}
<%@Control Inherits="System.Web.Mvc.ViewUserControl<Menu>"%>
<ul>
<%foreach(var item in Model.MenuItem){%>
<li><%=item%></li>
<%}%>
</ul>
<%=Html.Action("Menu")%>
不能用URL直接调用。
RenderAction
传递参数
public class MenuOptions{
public int Width{get;set;}
public int Height{get;set;}
}
[ChildActionOnly]
[ActionName="coolMenu"]
public ActionResult Menu(MenuOptions options){
return PartialView(options);
}
<%=Html.Action("Menu",new{options=new MenuOptions{width=400,Height=500}})%>
2011-4-14 22:52 danny
发表评论
-
10.2Asp.net MVC各层使用TDD方式
2011-05-01 12:09 804Asp.net MVC各层使用TDD方式 Asp.net M ... -
10.1TDD简介
2011-04-30 23:09 558MVC中的测试驱动开发 为什么需要TDD TDD的由来 它 ... -
9、MVC程序安全限定
2011-04-29 22:14 1811常见网络安全攻击隐患 针对Asp.net MVC防御体系 安 ... -
8.2ASP.NET MVC2使用Ajax类库实例
2011-04-29 13:05 923ASP.NET MVC2使用Ajax类库实例 .net fo ... -
8.1Ajax类库介绍
2011-04-28 09:12 885在ASP.NET MVC中使用 -Microsoft ASP. ... -
7.2自定义开发Filter
2011-04-27 16:04 625Custom Filters ➤IAuthorization ... -
7.1Filter的使用
2011-04-26 22:20 501Filter的使用 -对Action的附加说明 Asp.n ... -
6.3Action的调用与属性
2011-04-26 09:43 665Action的调用与属性 1、唤起Action R ... -
6.2ActionResult的使用
2011-04-25 19:14 683ActionResult public abstract c ... -
6.1Controller类的基本构成
2011-04-25 09:17 669关于Controller Controller是什么? C ... -
5.6在Webform中使用routing
2011-04-23 22:48 668在Webform中使用routing 在Asp.net 4中使 ... -
5.5URL和Action匹配的秘密
2011-04-22 09:11 900Routes是如何把URL映射为Action -请求路由管道 ... -
5.4使用routing生成URL
2011-04-21 11:05 600使用routing生成URL URL生成器概述 1、质询每个 ... -
5.3使用Routes
2011-04-20 09:11 7395.3使用Routes 注册Area Route publi ... -
5.2Routes匹配URL的工作方式
2011-04-19 08:55 852URL的匹配规则 -site/{controller}/{ac ... -
5.1Url和Routes介绍
2011-04-17 12:05 6495.1Url和Routes介绍 关于Urls -域名好记好拼 ... -
4、View引擎介绍
2011-04-16 22:03 648View引擎介绍 Request =>Routing= ... -
3、HtmlHelper类(续)
2011-04-16 13:41 652HtmlHelper类(续) Html.TextArea 用 ... -
1、View层
2011-04-15 09:06 628ViewDataDictionary类 View 负责输出 ...
相关推荐
HtmlHelper类通过提供一系列扩展方法来简化HTML标记的创建,这些扩展方法直接在视图文件(如.cshtml)中使用。为了更好地理解HtmlHelper的用法,我们来详细解读以下几个常用的HtmlHelper方法: 1. ActionLink方法 ...
public static IHtmlString Calendar(this HtmlHelper htmlHelper) { var script = "$(function() { $('#calendar').datepicker(); });"; return new HtmlString("<input type='text' id='calendar' />" + ...
HttpClientHelper 对这个类进行了封装,使得开发者无需直接与HttpClient接口打交道,而是通过更简洁、易用的方法调用来实现网络通信。这提高了代码的可读性和可维护性。 单例模式是软件设计模式的一种,确保一个类...
标题 "NetHelper_C#帮助类HtmlHelper_JSON_PostJson_" 概述的是一个C#编程中的网络辅助类集合,其中包含了处理HTML、JSON数据以及POST请求的相关功能。这个工具集可能是为了方便开发者在进行Web开发时,高效地进行...
- 使用`HtmlHelper<TModel>.Extension`类,可以创建类型安全的助手方法,提供更好的IntelliSense支持。 - 自定义HTML Helper的一个例子可能是创建一个用于生成复杂表单元素,如带有验证和默认值的日期选择器。 4....
这个类需要继承自HtmlHelper类,这样它就可以访问HtmlHelper的所有功能,并进行扩展。在这个类中,你将封装生成验证码图片的逻辑。 2. 在Helper类中定义多个重载的ValidateCode方法。这些方法会接受不同的参数,如...
ASP.NET MVC 分页 HtmlHelper控件2010贺岁版 by Herman.格式分为四种: .1:上一页/下一页 模式; .2:首页/尾页/上一页/下一页 模式; .3:上一页 1 2 3 4 5 下一页 模式; .4:总共X条, 当前1/X页,首页 上一页 1 2 3 4 5 ...
`HtmlHelper`是ASP.NET MVC提供的一种用于生成HTML元素的辅助类,它包含了大量内建的辅助方法,如`Html.BeginForm()`, `Html.DropDownList()`, `Html.TextBox()`等。这些方法可以帮助开发者更快速、更安全地构建视图...
为了解决这一需求,ASP.NET MVC引入了`HtmlHelper`类,该类提供了一系列方便的方法来简化HTML元素的创建过程。本文将详细介绍`HtmlHelper`的基本概念及其在ASP.NET MVC项目中的应用。 #### 二、HtmlHelper概述 `...
扩展HtmlHelper类的方法允许我们自定义一些额外的功能,比如分页,而不需要修改原有的HtmlHelper类。我们可以通过静态方法的方式,向HtmlHelper类添加新的扩展方法。这里展示的扩展方法名为ShowPageNavigate,它是一...
可以从方法名定义中看出,第一个参数都是this HtmlHelper htmlHelper,代表对HtmlHelper类的扩展; 二、通过 MVC HtmlHelper扩展 实例简单说明扩展步骤 实例1、扩展Submit using System; using System.Collections...
1. **定义Helper类**:Helper类通常继承自`System.Web.WebPages.HelperPage`或`System.Web.Mvc.HtmlHelper`。这些基类提供了执行辅助方法的上下文,并且包含了与视图环境交互所需的方法和属性。 2. **注册Helper**...
`laravel-html-helper`可能还提供了简化CSS类添加或链接外部JavaScript文件的方法。例如,轻松地为元素添加CSS类: ```php $html = HTML::div('内容', array('class' => 'container')); ``` 6. **安全性** ...
### 在MVC3中给HtmlHelper添加扩展(Extension)来消除魔鬼代码 #### 背景与需求 在ASP.NET MVC3中进行Web应用开发时,开发者常常会遇到需要在JavaScript代码中引用HTML元素的情况。这通常涉及到通过元素的名称或ID...
2. HtmlHelper扩展类的创建和应用:在*** MVC中,可以通过创建一个静态类(即扩展类)来扩展HtmlHelper的功能。这种类通过使用静态方法来提供额外的功能,这些方法可以在视图中直接调用,从而简化视图的编码工作。 ...
- Helper类的主要职责是提供数据或处理逻辑,而不是直接生成HTML或输出内容。它们应该返回处理后的数据,而不是使用`echo`或`print`。返回的数据在视图中可以安全地被转义和输出。 4. **文件组织**: - Helper类...
在IT行业中,Helper类是常见的代码复用工具,它们封装了一些特定的功能,使得开发者能够更加高效地编写和维护代码。在“传智播客C#/.NET MVC电商项目”中,使用了多个Helper类,这些类针对不同的业务场景提供了便利...
2. **多文件整合**:支持导入多个HTML文件,可以将一系列相关的文档整合到一个CHM文件中,形成完整的帮助系统。 3. **自定义设置**:用户可以根据需求定制CHM文件的外观和结构,包括主题颜色、字体大小、目录层次等...
而`HTMLHelper.cs`这个类文件,就是为了解决这个问题,它提供了封装好的方法,使得这些操作变得简单易行。 该类可能包含以下功能: 1. **获取HTML内容**:一个关键功能是获取HTML文档的全文。这可能是通过读取HTML...
TagHelper是ASP.NET Core MVC中的一个重要概念,它是对HTML助手(HtmlHelper)的一种升级。在传统的ASP.NET MVC中,我们通常使用HTML助手来生成HTML元素,而TagHelper则允许开发者通过C#代码直接操作HTML元素,这种...