使用Razor拼接一个CheckBox标签

原创 2015年07月09日 16:47:41

为什么不在cshtm模板页中直接写一个select标签呢?

<select>
        @{
            for(int i=0;i<Model.Count;i++)
                Person p =Model[i];
                <option value="@p.Id">@p.Name</option>
            }
    </select>

**
页面中这样生成html,代码太乱,而且不能重复使用。**

在MVC中

@Html.DropDownList(); 就可以这样调用一个DropDownList()
所以可以把拼接生成select的代码放到一个单独的方法汇总

在cshtml模板页中,如果这样写

<input type="checkbox" @Model.Gender?"checked":"" />

那么Razor就会把@Model当成一个输出,所以 加个括号 改变优先级

<input type="checkbox" @(Model.Gender?"checked":"“) />

下面来直接封装一个CheckBox标签。来体会Razor的好处

在抽出来的类中封装一个静态方法CheckBox

        public static RawString CheckBox(string name,string id,bool isChecked)//标签有名字,id,和是否选中
        { 
            //1.new一个StringBuilder
            StringBuilder ss = new StringBuilder();
            //2.拼接一个CheckBox方法
            ss.Append("<input type='checkbox' id=' ").Append(id).Append("'").Append("name='").Append(name).Append("'");
            if (isChecked)//如果是选中的
            {
                ss.Append("checked");
            }
            ss.Append("/>");
            return new RawString(ss.ToString());//返回生成的标签
        }

在模板cshtml中调用CheckBox

<!--1.收先在模板文集中读取RPcshtmlHelper的命名空间-->
@using Web2
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>

    <!--11.调用类中的方法-->
    @RPcshtmlHelper.CheckBox("gender","sex",true)
</body>
</html>

效果

这里写图片描述

总结:

使用cshtml调用外部类中的方法,增加了代码的复用性,同时使得cshtml页面看起来,更加简洁了。

小技巧:当敲击一个词时候出现自动提示。如果不想使用自动提示功能,
按下Esc按键取消自动提示;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Mvc4.0之 checkbox实例详解

Checkbox是我们编成中时常会用到的,它的使用可以为我们带来很大的便捷,我们可以运用它从而实现数据的批量删除,然而在mvc4.0种如何实现该操作,其实也不难 看下面这个实例 ·       ...
  • kiqiNie
  • kiqiNie
  • 2013年01月09日 18:46
  • 9685

jquery中选择checkbox拼接成字符串,然后到后台拆分取值

jquery中选择checkbox拼接成字符串,然后到后台拆分取值 js中的代码 $("#btn").click(function(){ var chenked=$("input[ty...
  • xpmars
  • xpmars
  • 2011年10月15日 09:16
  • 5426

复选框拼接

这是在easy-ui里的解析json $(function(){ //发送ajax请求,获取所有角色数据 ...
  • MZ199290
  • MZ199290
  • 2017年01月03日 12:04
  • 160

Razor html标签

1、Label Html语法: label for=“UserName”>用户名label> Razor语法: @Html.LabelFor(m=>m.UserName) @Html.Lab...
  • changhong009
  • changhong009
  • 2017年03月12日 22:32
  • 306

Razor语法大全(cshtml语法)

本文页面来源地址:http://www.cnblogs.com/dengxinglin/p/3352078.htmlRazor是基于framewor4以上写的一个开源项目:https://github...
  • gggg_ggg
  • gggg_ggg
  • 2016年01月21日 10:16
  • 6630

多个checkbox 获取选中的 并且把传递的id用逗号隔开(jQuery)

$("#gaipai").click(function(){             var arrs=new Array();             $("input[name='id']:c...
  • streetlight8023
  • streetlight8023
  • 2015年01月12日 17:14
  • 3395

asp.net mvc3 Razor引擎中@使用规则小记

1 2     3     @if(true) 4     { 5         6     } 7    错误页面:...
  • sgear
  • sgear
  • 2014年07月29日 11:48
  • 5105

Razor输出字符串和变量

@{ Person p = Model as Person;         //输出名称和年龄         //1.第一种方式         @:名称=@p.Name             ...
  • limlimlim
  • limlimlim
  • 2015年03月31日 13:59
  • 10479

使用Razor拼接一个CheckBox标签

为什么不在cshtm模板页中直接写一个select标签呢? @{ for(int i=0;i...
  • xcl13014673050
  • xcl13014673050
  • 2015年07月09日 16:47
  • 681

js中将多个checkbox的值传处理并传到后台

js中将多个checkbox的值传处理并传到后台 jsp页面代码如: ${list.fieldName} 不共享 普...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2016年05月25日 19:33
  • 7993
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Razor拼接一个CheckBox标签
举报原因:
原因补充:

(最多只允许输入30个字)