2013年8月5日星期一

ASP.NET MVC 4使用技巧记录3:Twitter.Bootstrap安装和常用HtmlHelper

1. 安装Twitter.Bootstrap(于HTML,CSS,JAVASCRIPT的简洁灵活的流行前端框架及交互组件集)

PM> install-Package Twitter.Bootstrap.Less

PM> install-package dotless

 

2. 传递Pass Data从Controller到View

A. 可以使用public ViewDataDictionary ViewData { get; set; }

譬如:

in Controller:

ViewData["info"] = "Wrong Invitation Code!";

in View:

   @ViewData["info"] 

B. 也可以使用public Object ViewBag { get; }

譬如:

in Controller:

ViewBag.Message = "Wrong Invitation Code!";

in View:

   The message is @ViewBag.Message

C. 当然也可以使用Session

in Controller:

Session["info"] = “Wrong Invitation Code!”;

in View: 

@Session["info"]

 

3. 关于model 在 razor view中

需要在View中置顶声明model type:

@model MyNamespace.Models.MyModel

"model"是小写的m -- 用来指明具体的View要呈现的Model类型。也就是declares the model。

"Model"是大写M --当我们引用一个model对象时。也就是references the instantiation of the model。

 

4. 关于常用的HtmlHelper:

在System.Web.Mvc.Html中

具体参阅:

http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper

BeginForm()

BeginRouteForm() :根据URL路由规矩。

EndForm()

譬如:

@using (Html.BeginForm(new { ReturnUrl = ViewBag.ReturnUrl })) {

   @Html.AntiForgeryToken()

   @Html.ValidationSummary(true)

   <fieldset>

       <legend>Log in Form</legend>
10
11        <ol>
12
13            <li>
14
15                @Html.LabelFor(m => m.UserName)
16
17                @Html.TextBoxFor(m => m.UserName)
18
19                @Html.ValidationMessageFor(m => m.UserName)
20
21            </li>
22
23            <li>
24
25                @Html.LabelFor(m => m.Password)
26
27                @Html.PasswordFor(m => m.Password)
28
29                @Html.ValidationMessageFor(m => m.Password)
30
31            </li>
32
33        </ol>
34
35        <input type="submit" value="Log in" />
36
37    </fieldset>
38
39  }
40

 

CheckBox() , CheckBoxFor()

譬如:

@Html.CheckBox( "MyCheckBox" , true , new { id="checkbox" } )

Hidden() , HiddenFor() 某个隐藏输入域,这种类型的输入元素实际上是隐藏的。这个不可见的表单元素的 value 属性保存了一个要提交给 Web 服务器的任意字符串。如果想要提交并非用户直接输入的数据的话,就是用这种类型的元素。

譬如:

@Html.Hidden( "Hidden" , "Hidden Value")
 
Password() , PasswordFor()   

譬如:

@Html.Password ( "Password" , 123456)

RadioButton() , RadioButtonFor()

譬如:

@Html.RadioButton ( "MyRadioButton" , "RadioValue" , true)

或者:

@Html.RadioButtonFor(m =>m.Position, "0", true) Employee

@Html.RadioButtonFor(m =>m.Position, "1", false) Manager

TextBox() , TextBoxFor()

譬如:

@Html.RadioButton ( "MyTextBox" , "TextValue" new { maxlength =100 })

DropDownList() , DropDownListFor()

譬如:

@HtmlDropDownList("List" , new SelectList( new int{1, 2, 3, 4 }))

ListBox() , ListBoxFor()

譬如:

@Html.ListBox ("List" , new SelectList(new string[]{ "apple" , "banana" , "orange" ,"mango"}))

TextArea() , TextAreaFor()

譬如:

@Html.TextArea("Message", new { rows=40, columns=40 })

LabelFor()

譬如:

@Html.LabelFor(m => m.Mobile)

TextBoxFor()

譬如:

@Html.TextBoxFor(m => m.Mobile)

ActionLink():超链接

譬如:

@Html.ActionLink ( "Links Name" , "New" , "Home" )

也就是在控制器Home上执行“New”方法

RouteLink(): 根据Route产生超链接 。

譬如:

@Html.RouteLink( "NewLink" , new { controller="Home" , action="New"} )

Html.partial(),是将视图内容直接生成一个字符串并返回。

譬如:

@Html.Partial("_LoginPartial") 

@Html.Partial("NavigateBarUserControl",Model)

RenderPartial() ,想对于Html.partial()而言,RenderPartial()直接输出至当前 HttpContext,性能较好。

譬如:

@Html.RenderPartial("Path/to/my/partial/view")

ValidationMessage() , ValidationMessageFor()

譬如:

@Html.ValidationMessageFor(m => m.Password)

没有评论: