MVC功能

(以下文章引用诸多网络博客内容,如有侵权请联系我们删除)

 

访问localhost/home/index 将访问 class HomeController类中的 Index() 函数,并且返回网页输出

 

ViewPage中存在一个HtmlHelpe类的一个对象Html ,所以在页面中可以用 @Html.xxx 生成一些网页控件

页面内容                                                                                                       网页内容

@Html.ActionLink("连接","Index","Home")                                                    <a href="/Index/home">连接</a>

@Html.RouteLink("连接","Index","Home",new {page=1},null)                       <a href="/Index/home/?page=1">连接</a>

@Html.RouteLink("连接","Index",new {page=1})                                           <a href="/Index/?page=1">连接</a>

@Html.ActionLink("连接","Index","Home",new {page=1},new{id="link1" })                       <a href="/Index/home/?page=1" id="link1">连接</a>

 

 

Html.TextBox("input1") 
Html.TextBox("input2",Model.CategoryName,new{ @style = "width:300px;" }) Html.TextBox("input3", ViewData["Name"],new{ @style = "width:300px;" }) Html.TextBoxFor(a => a.CategoryName, new { @style = "width:300px;" })

其生成的结果为:
<input id="input1" name="input1" type="text" value="" /> <input id="input2" name="input2" style="width:300px;" type="text" value="Beverages" /> <input id="input3" name="input3" style="width:300px;" type="text" value="" /> <input id="CategoryName" name="CategoryName" style="width:300px;" type="text" value="Electronic" />

 

Html.TextArea("input5", Model.CategoryName, 3, 9,null) Html.TextAreaFor(a => a.CategoryName, 3, 3, null)
其生成的结果为:
<textarea cols="9" id="input5" name="input5" rows="3">Electronic</textarea> <textarea cols="3" id="CategoryName" name="CategoryName" rows="3">Electronic</textarea>
Html.CheckBox("chk1",true) 
Html.CheckBox("chk1", new { @class="checkBox"}) Html.CheckBoxFor(a =>a.IsVaild, new { @class = "checkBox" })

其生成的结果为:
<input checked="checked" id="chk1" name="chk1" type="checkbox" value="true" /><input name="chk1" type="hidden" value="false" /> <input class="checkBox" id="chk1" name="chk1" type="checkbox" value="true" /><input name="chk1" type="hidden" value="false" /> <input checked="checked" class="checkBox" id="IsVaild" name="IsVaild" type="checkbox" value="true" /><input name="IsVaild" type="hidden" value="false" />
Html.DropDownList("ddl1", (SelectList)ViewData["Categories"],  "--Select One--")
Html.DropDownListFor(a => a.CategoryName, (SelectList)ViewData["Categories"], "--Select One--", new { @class = "dropdownlist" })
其生成的结果为:
复制代码
<select id="ddl1" name="ddl1"> <option value="">--Select One--</option> <option value="1">Beverages</option> <option value="2">Condiments</option> <option selected="selected" value="3">Confections</option> <option value="4">Dairy Products</option> <option value="5">Grains/Cereals</option> <option value="6">Meat/Poultry</option> <option value="7">Produce</option> <option value="8">Seafood</option> </select> <select class="dropdownlist" id="CategoryName" name="CategoryName"> <option value="">--Select One--</option> <option value="1">Beverages</option> <option value="2">Condiments</option> <option value="3">Confections</option> <option value="4">Dairy Products</option> <option value="5">Grains/Cereals</option> <option value="6">Meat/Poultry</option> <option value="7">Produce</option> <option value="8">Seafood</option> </select>
复制代码
<%: Html.RadioButton("Gender","1",true) %><%: Html.RadioButton("Gender","2",false) %>
其生成的代码为:
<input checked="checked" id="Gender" name="Gender" type="radio" value="1" /><input id="Gender" name="Gender" type="radio" value="2" />
 
 
<%: Html.Encode("<p>哈哈</p>") %>

  其生成的代码为:

&amp;lt;p&amp;gt;哈哈&amp;lt;/p&amp;gt;
<%: Html.Raw("<p>哈哈</p>") %>

  其生成的代码为:

<p>哈哈</p>
在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor
@{
        string test = "Edison Chou"; <p>@test.IsInt()</p> <p>@test.AsInt()</p> }


ActionResult是一个操作方法的结果,并且是一个抽象类,那么,也就代表了可以有多重结果的实现。这样就解释了,我们在Action中可以不仅可以返回ViewResult还可以返回JsonResult的原因。通过下表,我们可以清晰地看到,ActionResult的各种派生类的详情:


从表中可以看出,我们所常用的各种XXXXResult都不约而同地继承了ActionResult这个基类,或者是其父类(例如:ViewResultBase)继承了ActionResult这个基类。因此,我们既可以在Action中返回视图,还可以返回文件流、重定向、空内容等结果。特别是,以前我们在WebForm时代常常与浏览器交互采用JSON格式的数据,需要使用JavaScriptSerializer这个类进行Serialize后返回。但是,在MVC的Action中,微软已经帮我们封装了好了JsonResult


EmptyResult

Content:通过Content可以向浏览器返回一段字符串类型的文本结果,就相当于Response.Write("xxxx");一样的效果;
return Content(contentString);  ContentResult

File:通过File可以向浏览器返回一段文件流,主要用于输出一些图片或文件提供下载等;

HttpUnauthorizedResult:通过HttpUnauthorizedResult可以向浏览器输出指定的状态码和状态提示,如果不指定状态码,则默认为401无权访问;
RedirectRedirectToAction:重定向与重定向到指定Action,我一般使用后者,主要是向浏览器发送HTTP 302的重定向响应;

Json:通过Json可以轻松地将我们所需要返回的数据封装成为Json格式,进行Ajax开发可以变得so easy!
public ActionResult JsonResultDemo()
{
      var tempObj = new { Controller = "HomeController", Action = "JsonResultDemo" }; return Json(tempObj, JsonRequestBehavior.AllowGet); }

JavaScript:可以通过JavaScriptResult向浏览器单独输出一段JS代码,不过由于主流浏览器都对此进行了安全检查,因此你的JS代码也许无法正常执行,反而是会以字符串的形式显示在页面中;

MapRoute方法介绍

       MapRoute( string name, string url);

  MapRoute( string name, string url, object defaults);
  MapRoute( string name, string url, string[] namespaces);
  MapRoute( string name, string url, object defaults, object constraints);
       MapRoute( string name, string url, object defaults, string[] namespaces);
  MapRoute( string name, string url, object defaults, object constraints, string[] namespaces);




转载于:https://www.cnblogs.com/webocean/p/7122978.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值