通过前面三节,已经大概理解MVC是怎样运作的了。MVC的一个特点就是可以很方便地控制视图效果,数据交互也很灵活。先讲一下视图控制的,HtmlHelper,看到Help就知道它是不知疲惫的好人啦(有点像SQLHelper?)

.net MVC自带的HtmlHelper自带一部分功能,但如果我们不自定义自己功能,它能实现的效果也就和<input>标签差不多吧。先看下自带的效果:

一:创建一个HtmlHelper的控制器(名字为别的也行~)

为Index添加视图

<body>
<div>
<%--链接文字--%>
<%:Html.ActionLink("链接文字?","About","Home") %> </br>
  <%:Html.ActionLink("红色的链接文字", "About", "Home",new { Style="color:red;"})%> </br>
//<%--(但此次的Url链接不知道为什么新增了几个字符)--%>
//<a Style="color:red;" href="/HtmlHelper/About?Length=4">红色的链接文字</a>
  
<%--文本框--%>
<%:Html.TextBox("txtName","乡巴佬") %> </br>
<%--单选控件(控件名相同表示为同一组)--%>
男:<%:Html.RadioButton("txtGender",1,true) %> </br>
女:<%:Html.RadioButton("txtGender",2,false) %> </br>
<%--ComboBox(先到控制器发送一个数据到视图)--%> </br>
<%:Html.DropDownList("city")%> </br>
</div>
</body>

控制器代码:

public ActionResult Index()
{
ViewData["city"] = new List<SelectListItem>()
{
new SelectListItem(){Selected=false,Text="揭阳",Value="2"},
new SelectListItem(){Selected=false,Text="惠州",Value="2"}
};
return View();
}

二:为HtmlHelpert添加自己的方法

(试想一下,如果你很多页面经常要使用一个功能,如表格数据展示,而且格式差不多,那就可以传入参数写到HtmlHelper类中去,这样子,前端使用的时候,只需要短短一行代码即可,而不需要再写table标签啊for循环啊)

在Model下新增一个类:MyHtmlHelper

using System.Web.Mvc;
//using System.Web.Mvc并将namespace该为System.Web.Mvc,这样前台使用时新创建的方法就不用再解析了。
namespace System.Web.Mvc
{
//修改为静态方法
public static class MyHtmlHelper
{
//扩展方法(本质是静态方法),为this关键词的类新增另定义的方法。
public static MvcHtmlString showMyLable(this HtmlHelper helper, string lbText)
{
//不要return string类型而是 return MvcHtmlString类型,因为前者会自动加上转义符传到前台。
return MvcHtmlString.Create(string.Format("<span>{0}</span>", lbText));
  //也可以使用HtmlString
}
}
}

前台使用:

<%:Html.showMyLable("自定义label") %>

.net网站开发(前端):4.MVC HtmlHelper的更多相关文章

  1. .net网站开发(设计):1.什么是MVC模式

    好吧我知道,应该很少人一开始学网站开发就从MVC开始,但如果你已经理解了三层架构之类的,那直接尝试强大的微软MVC网站开发模式也是挺不错的. 但其实我们学校有个实验室,那些干进去的就算是大一的学生,也 ...

  2. I am back-电商网站开发&jQuery

    hi 之前有将近两周的时间没有更新,除了懒就是其他的事情耽误了.现在好了,回家了,虽然家里停水,外面又有积雪,天寒地冻的,但诸多不便,都比不过有点闲的好. 开搞每个学PHP的必经之路——电商网站的开发 ...

  3. ASP.NET MVC 网站开发总结(四)——校友平台开发总结

    又历经一个多月的努力,学校的一个校友平台项目也接近内测的尾声了,简单的总结一下这次的项目开发. 与上次做Wing工作室的门户网站相比,同样是团队开发,参与的人员多了一个,用的时间也差不多一个月,但从总 ...

  4. ASP.NET MVC 网站开发总结(六)——简谈Json的序列化与反序列化

    首先,先简单的谈一下什么是序列化与反序列化,序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通 ...

  5. ASP.NET MVC 网站开发总结(三) ——图片截图上传

    本着简洁直接,我们就直奔主题吧,这里需要使用到一个网页在线截图插件imgareaselect(请自行下载). 前台页面: <!DOCTYPE html> <html> < ...

  6. ASP.NET MVC 网站开发总结(一)

    历经一个多月的努力,工作室的门户网站(http://www.wingstudio.org)终于结束了内部公测. 仔细算一下,大概把网站开发出1.0版本大概用了一个月的时间(主要是利用课余时间),其后大 ...

  7. Mvc网站开发知识

    网站开发基本本步骤 mvc是一个设计模式 网站开发前台页面技术 页面设计:Html css+Div 页面特效:JavaScript,jQuery oop编程核心公共技能 c#基础语法与程序逻辑 面向对 ...

  8. Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架

    Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的. 历史 Bootstrap 是由 Twitter 的 ...

  9. asp.net -mvc框架复习(1)-ASP.NET网站开发概述

    1.网站开发的基本步骤: 2.网站开发的需要的知识结构 (1)网站开发前台页面技术 页面设计:HTML  .CSS+DIV 页面特效:JavaScript.jQery (2)OOP编程核心公共技能 C ...

  10. 前端示例MVC网站

    前端示例MVC网站 ASP.NET Zero 包含了一个公共web站点的前端页面和一个登陆页面.当您第一次运行项目的时候可以看到,如下图所示: 该前端网站有两个页面,一个是主页和关于我们.这些页面的内 ...

随机推荐

  1. DenyHosts 安装及配置详解

    DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP ...

  2. Qt for Android遇到的几个错误解决[Win7 + Qt5.6 +jdk 8u91]

    [1]SDK Manager无法更新Android SDK安装后需要运行SDK Manager下载安装包,默认从google网站下载,但被GWF和谐了,感谢一位网友提供的镜像站点.具体步骤是:运行SD ...

  3. WPF中图形表示语法详解(Path之Data属性语法)

    原文 http://blog.csdn.net/johnsuna/article/details/1885597 老规矩,看图说话. 先看显示效果:(图1) XAML(代码A):<Page xm ...

  4. 【翻译】Microsoft Ajax Minifier 快速使用指南(与VS集成使用) 编译后直接压缩项目的JS或CSS文件

    网上找了好久终于找到一个能跟VS集成使用的JS和CSS压缩工具,因为害怕忘记,所以给转发过来,顺便翻译一下,大学那会儿学的英语基本上都已经还给老师了,所以翻译的不太好,不过能看懂就成,对吧? 原文地址 ...

  5. LFM 隐语义模型

    隐语义模型: 物品       表示为长度为k的向量q(每个分量都表示  物品具有某个特征的程度) 用户兴趣 表示为长度为k的向量p(每个分量都表示  用户对某个特征的喜好程度) 用户u对物品i的兴趣 ...

  6. _00023 Kafka 奇怪的操作_001它们的定义Encoder达到Class数据传输水平和决心

    博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 博文标题:_00023 Kafka 诡异操作_001自己定义Encoder实现Class级别的数据传送 ...

  7. JS继承,原型继承,构造函数的继承,非构造函数"的继承

    a.原型继承 一.new运算符的缺点 用构造函数生成实例对象,有一个缺点,那就是无法共享属性和方法.比如,在DOG对象的构造函数中,设置一个实例对象的共有属性species. function DOG ...

  8. OC字符串的常用方法

    网上写的关于字符串常用方法的博客很多,这里我简单做了下总结!不喜勿喷哦! 一.创建字符串 #import <Foundation/Foundation.h> //NSString //创建 ...

  9. 关于EJB 时间注解与oracle数据库时间格式

    EJB中Temporal是时间注解,其中TemporalType是时间注解的枚举类型其中包括 TemporalType类型,请看源码/*** Type used to indicate a speci ...

  10. LintCode (9)Fizz Buzz

    下面是AC代码,C++风格: class Solution { public: vector<string> fizzBuzz(int N) { vector<string> ...