Html的用法Word文档格式.docx
《Html的用法Word文档格式.docx》由会员分享,可在线阅读,更多相关《Html的用法Word文档格式.docx(16页珍藏版)》请在冰点文库上搜索。
3.使用HtmlHelper根据路由规则生成表单:
%Html.BeginRouteForm(new{controller="
action="
Demo"
%Html.EndForm();
4.使用HtmlHelper生成一个复选框:
%=Html.CheckBox("
checkBox"
new{id="
myCheckBox"
})%>
复选框
5.使用HtmlHelper生成上拉列表框:
%vardropList=newList<
SelectListItem>
();
for(inti=0;
i<
5;
i++)
{
vardropItem=newSelectListItem();
dropItem.Value=i.ToString();
dropItem.Text=i.ToString();
dropList.Add(dropItem);
}
%=Html.DropDownList("
myList"
dropList,new{style="
width:
100px;
6.使用HtmlHelper生成隐藏域:
%=Html.Hidden("
hidden"
7.使用HtmlHelper生成列表框:
%varlist=newList<
for(vari=0;
varitem=newSelectListItem();
item.Value=i.ToString();
item.Text=i.ToString();
list.Add(item);
}
%=Html.ListBox("
listBox"
list,new{style="
8.使用HtmlHelper生成密码输入框:
%=Html.Password("
password"
longgel"
9.使用HtmlHelper生成单选框:
%=Html.RadioButton("
radio"
boy"
true)%>
男
<
girl"
false)%>
女
10.使用HtmlHelper生成部分视图(用户控件):
%Html.RenderPartial("
PartialView"
);
11.使用HtmlHelper根据路由规则生成超链接:
%=Html.RouteLink("
我是由路由生成的超链接"
new{controller="
action="
})%>
12.使用HtmlHelper生成富文本框:
%=Html.TextArea("
myTxtArea"
new{style="
300px;
height:
13.使用HtmlHelper生成文本框:
%=Html.TextBox("
myTxtBox"
我是文本框"
)%>
/div>
其实大家可能注意到了,当我们在使用<
%%>
中有同样都是使用的HtmlHelper中的方法,为什么有的需要加上等号,有的不需要,其实在HtmlHelper中的方法中,只要是返回的是MvcHtmlString类型的方法都需要使用等号将值输出。
在来看看生成的结果吧。
div>
ahref="
/"
>
我是超链接<
/a>
formaction="
id="
method="
post"
<
/form>
/Simple/Demo"
inputid="
name="
type="
checkbox"
value="
true"
/>
inputname="
false"
selectid="
style="
optionvalue="
0"
0<
/option>
1"
1<
2"
2<
3"
3<
4"
4<
/select>
multiple="
multiple"
inputchecked="
checked"
spanstyle="
background-color:
Red"
Hi,我是部分视图(用户控件)<
/span>
我是由路由生成的超链接<
textareacols="
20"
rows="
/textarea>
text"
另外HtmlHelper中还有ValidationMessage()和ValidationSummary()等方法,下次学到验证的时候一起写出来。
^_^
在写一个编辑数据的页面时,我们通常会写如下代码
由前篇我们所讲的Helper演化,我们思考,对于这种代码我们是不是也可以用一个Helper来自动绑定数据呢
这当然是可以的,ASP.NETMVC提供了一个HtmlHelper用于生成有数据绑定的Html标签。
1.ActionLink其中最常用的就是Html.ActionLink
(1).ActionLink(stringlinkText,stringactionName)
//页面显示linkText指向Global.asax.cs中默认的Controller对象的actionName方法
(2).ActionLink(stringlinkText,stringactionName,stringcontrollerName)
//页面显示linkText指向controllerName对应的Controller的actionName方法
(3).ActionLink(stringlinkText,stringactionName,objectroutues,objecthtmlAttributes)
//页面显示linkText指向Global.asax.cs中默认的Controller对象的actionName方法,并且传递参数给action方法(以匿名类型的名称/值对的方式来实现),并设置页面链接的属性htmlAttributes。
1.1基本的使用方式
在UrlRouting规则为默认规则的情况下,它生成的HTML代码为
1:
这是一个连接<
ActionLink中的三个参数分别为
显示的文字
Action
Controller
其中Controller可以省略,省略时指向同一Controller下的Action。
1.2ActionLink中QueryString与Html属性设置
1:
带有QueryString的写法
2:
这是一个连接"
Home"
new{page=1},null)%>
3:
new{page=1})%>
4:
有其它Html属性的写法
5:
new{id="
link1"
6:
null,new{id="
7:
QueryString与Html属性同时存在
8:
new{page=1},new{id="
9:
new{page=1},new{id="
其生成结果为:
/?
page=1"
Length=4"
这样就可以使用ActionLink生成近乎所有的地址连接了。
注意,如果连接中不涉及到action及controller就没有必要使用ActionLink,而是直接写HTML代码就可以了,例如
#1"
一章<
javascript:
void(0)"
onclick="
delete();
删除<
2.RouteLink
2.1与ActionLink
RouteLink与ActionLink相差无几,只是它的地址是由Route生成拿上面的例子
来说,如果用RouteLink来写就是
%=Html.RouteLink("
new{controller="
})%>
而带上QueryString以及Html属性的ActionLink
就可以这样来写
其实就是用一个新建立的RoutueDictionary的对象(new{}所实例化的对象将会等价转换为RoutueDictionary)来替原来的Action,Controller字符串的单独指定。
2.2RouteLink使用Route规则
除了这些协同的用法,RouteLink还支持使用Route规则名来创建连接
例如我们在Global.asax文件中添加一个Route规则
routes.MapRoute(
"
about"
//这是规则名
//url
new{controller="
}
);
那么我们就可以使用这个Route规则
关于"
new{})%>
new{page=1})%>
来生成如下的HTML:
/about"
关于<
/about?
3.表单很多情况下是要生成表单元素的,正如文章开始所述,修改一个内容的情况下,我们可能要将数据与表单绑定。
3.1生成Form
我们当然可以使用纯的Html代码或UrlHelper来生成一个Form。
如
但是因为是在HTML的属性中,所以还是难以维护,幸好ASP.NETMVC为我们提供了一个Helper,我们可以通过以下两种方式生成一个Form:
%using(Html.BeginForm("
index"
home"
FormMethod.Post)){%>
表单内容
%}%>
%Html.BeginForm("
FormMethod.Post);
//注意这里没有=输出%>
BeginForm方法类似于ActionLink的调用方式,所以ASP.NETMVC还提供了BeginRouteForm这种方法。
当然这里我们也可以使用new{}来为form的action增加querystring或HTML属性,方法与前面介绍的大同小异,参见方法列表即可。
3.2表单元素
ASP.NETMVC提供了多种表单元素的Helper。
其中包括:
TextBox(类似inputtype=text,下面类似)、TextArea、DropDownList(select)、CheckBoxHidden、ListBox、Password、RadionButton。
注意:
因为<
inputtype=”submit”/>
一般情况下是不会绑定数据的所以ASP.NETMVC并未提供此Helper(曾经提供过在preview2之前)。
如果我们想提供一个inputtype=text它的name为t1则以下代码:
t1"
3.3表单元素绑定如果我们想要让上文中的t1初始时就有一个值,比如“重典”那么我们可以按以下方式
重典"
如果数据是从数据库中读取,即得到数据是从Action中获取的,那么我们可以在Action中使用ViewData传递
Action:
ViewData["
name"
]="
;
View:
ViewData["
])%>
以上方法看似简单,其实ASP.NETMVC为我们提供了更为简便的绑定方式---只要保证ViewData的Key与Helper所生成元素的name保持一致就可以自动绑定:
Action:
View:
这样就可以自动绑定了
3.4列表数据显示与绑定
像TextBox这种值单一的数据比较容易,但是存在的数据比较多的DropDownList或ListBox应该怎么绑定数据及初始化值呢,我们来看看下面的例子:
sel1"
]=newSelectList(
new[]{1,2,3}
3
这样就可以将列表内容、默认值、以及表单元素三者绑定在一起了。
而我们的列表内容并不是任何情况下都是数组的,大多情况下还是Key-Value对居多。
我们可以使用以下方式:
List<
list=newList<
newSelectListItem{Text="
Value="
},
邹健"
};
list
"
HTML扩展类的所有方法都有2个参数:
以textbox为例子
publicstaticstringTextBox(thisHtmlHelperhtmlHelper,stringname,Objectvalue,IDictionary<
string,Object>
htmlAttributes)
publicstaticstringTextBox(thisHtmlHelperhtmlHelper,stringname,Objectvalue,ObjecthtmlAttributes)
这2个参数代表这个html标签的属性集合。
使用方法如下。
1.ActionLink
带有QueryString的写法
有其它Html属性的写法
QueryString与Html属性同时存在
生成结果为:
跟ActionLink在功能上一样。
ab