MVC的控件写法,及赋值 【重要】

MVC控件的写法:参考资料

<1>YYController 控制器

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Collections;

namespace MvcFirst.Controllers
{
    public class YYController : Controller
    {
        //
        // GET: /YY/

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult HttpHelper()
        {

            //给下拉框赋值的第一种写法
            IList<SelectListItem> list = new List<SelectListItem>();
            SelectListItem item1 = new SelectListItem() { Selected = false, Text = "北京", Value = "1" };
            SelectListItem item2 = new SelectListItem() { Selected = false, Text = "上海", Value = "2" };
            SelectListItem item3 = new SelectListItem() { Selected = false, Text = "广州", Value = "3" };
            list.Add(item1);
            list.Add(item2);
            list.Add(item3);
            ViewData["City"] = list;

            //给下拉框赋值的第二种写法
            ViewData["Province"] = new List<SelectListItem>(){
                new SelectListItem(){Selected=true,Text="湖南",Value="hn"},
                new SelectListItem(){Selected=false,Text="广东",Value="gd"},
                new SelectListItem(){Selected=false,Text="江苏",Value="js"},            
            
            };

            
            ViewData["UserName"] = "你好,中国";
            return View();
        }

    }
}

 

<2>视图

<!DOCTYPE html>
<html>
<head >
    <meta name="viewport" content="width=device-width" />
    <title>HttpHelper</title>
</head>
<body>
    <div>
        <%-- ------------------------------------------------------------DropDownList下拉列表-----------------------%>
        <%--这个DropDownList的name属性值为“City”,那么它就会自动去控制器里面去找Key为City的ViewData,然后将ViewData["City"]的数据往Html.DropDownList里面装配【即将ViewData["City"]的数据绑定到Html.DropDownList上来】--%>
        <%:Html.DropDownList("City") %>
        <%:Html.DropDownList("Province")%>
        <br />
        <%--因为ViewData["City"]是一个list所以不能用这种字典来取值--%>
        <%--<%:ViewData["City"] %>--%>



        <%-- ---------------------------------------------------------TextBox 单行文本框----------------------------%>
        <%--这个TextBox的name属性值为“UserName”,那么它可以自动去控制器的里面去取key为UserName的ViewData,让后给ViewData["UserName"]的值赋给Html.TextBox()的value属性--%>
        <%:Html.TextBox("UserName") %><br />



        <%-- ---------------------------------------------------------TextArea 多行文本框----------------------------%>
        <%--创建一个5行6列的多行文本框,文本框的默认值为"",并给它添加一个id属性并赋值为txts,同时给他添加一个class属性,因为class是MVC的关键词,所有用需要加@符号--%>
        <%:Html.TextArea("txt1","",5,6,new {id="txts",@class="warning"}) %><br />

        <%--如果想在表单中生成data-id=””这样的属性标签怎么办?-是C#中的特殊字符。用下划线代替所有下划线的属性都会转换为连字符--%>
        <%:Html.TextArea("txt1","",5,6, new {id="txts",class="warning",data_id="123"}) %><br />



        <%-- ------------------------------------------------------RadiodButton单选框----------------------%>
        <%--Html.RadioButton的name属性为radio1,这三个Html.RadioButton的name属性一定要一致,才可以互斥--%>
        男<%:Html.RadioButton("radio1", "男", true, new {id="la" })%>
        女<%:Html.RadioButton("radio1","女",false) %>
        保密<%:Html.RadioButton("radio1","保密",false)%><br />



        <%-- ------------------------------------------------------CheckBox复选框----------------------%>
        跑步<%:Html.CheckBox("CheckBox1",true) %>

        <%--给Html.CheckBox这个复选框的name值设为CheckBox2,设为选中,并给它添加两个属性,一个属性是id,并赋值"langqiu",另外一个属性是lable,并赋值为”篮球“--%>
        篮球<%:Html.CheckBox("CheckBox2", true, new { id="langqiu", lable = "篮球"})%>
        骑马<%:Html.CheckBox("CheckBox3",false) %><br />
    </div>
</body>
</html>

然后打开该页面的源文件看看,它们都解析成什么样了?

 

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>
        HttpHelper
    </title>
</head>
<body>
    <div>
        <select id="City" name="City">
            <option value="1">北京</option>
            <option value="2">上海</option>
            <option value="3">广州</option>
        </select>
        <select id="Province" name="Province">
            <option selected="selected" value="hn">湖南</option>
            <option value="gd">广东</option>
            <option value="js">江苏</option>
        </select>
        <br />

        <input id="UserName" name="UserName" type="text" value="你好,中国" /><br />


        <textarea cols="6" id="txts" name="txt1" rows="5"></textarea><br />


        男<input checked="checked" id="la" name="radio1" type="radio" value="男" />
        女<input id="radio1" name="radio1" type="radio" value="女" />
        保密<input id="radio1" name="radio1" type="radio" value="保密" /><br />


        跑步<input checked="checked" id="CheckBox1" name="CheckBox1" type="checkbox" value="true" /><input name="CheckBox1" type="hidden" value="false" />


        篮球<input checked="checked" id="langqiu" lable="篮球" name="CheckBox2" type="checkbox" value="true" /><input name="CheckBox2" type="hidden" value="false" />
        骑马<input id="CheckBox3" name="CheckBox3" type="checkbox" value="true" /><input name="CheckBox3" type="hidden" value="false" /><br />
    </div>
</body>
</html>


================================================================================

下面我们单独来说一下下拉列表

控制器

// 测试下拉单的使用
public ActionResult TestSelect(int Id) 
{
    // 首先获取数据
    var mySelect = (from a in db.T_User
                    select a).ToList() //首先从数据库中先查询出数据,转成一个list
                   .Select(r => new SelectListItem { Text = r.UserName, Value = r.Id.ToString() }).ToList(); //然后我们再将它转成一个新的集合
				   
				   
    ViewData["mySelect"] = mySelect;  
	//在视图页面上这样用: @Html.DropDownList("mySelect") 

    ViewBag.mySelect = mySelect; 
	//是视图页面上这样用:@Html.DropDownListFor(r => r.Session, ViewBag.mySelect as IEnumerable<SelectListItem>)
   
    return View();
}

视图

@{
    ViewBag.Title = "TestSelect";
}
<h2>TestSelect</h2>
@model MvcTest.T_User
@using (Html.BeginForm())
{
    <table>
        <tr>
            <td>@Html.DropDownList("mySelect")</td>
            <td>@Html.DropDownListFor(r => r.Session, ViewBag.mySelect as IEnumerable<SelectListItem>)</td>
        </tr>

        <tr><td><input type="submit" value="提交" /></td></tr>
    </table>
}

 

<script type="text/javascript">
    $(function () {
        alert($("#mySelect").find(":selected").val()); //获取id为mySelect的这个下拉框的”选中项“的值
    })
</script>

 

 

效果图

 

 

 

也可以使用字典的形式

 

namespace itcast.crm16.Site.Areas.admin.Controllers
{
   
    public class menusController : BaseController
    {
        public menusController(IsysMenusServices mser)
        {
            base.menuSer = mser;
        }
        #region 2.0 编辑

        private void SetStatus()
        {
			//用字典的形式
            Dictionary<int, string> dic = new Dictionary<int, string>();
            dic.Add(0, "正常");
            dic.Add(1, "停用");

            SelectList clist = new SelectList(dic, "Key", "Value");

            ViewBag.status = clist;

        }

        [HttpGet]
        public ActionResult Edit(int id)
        {
			//直接在这里使用
            SetStatus();

            var model = menuSer.QueryWhere(c => c.mID == id).Select(c => c.EntityMap()).FirstOrDefault();

            return View(model);
        }
    }
}

视图

<td>
    @Html.DropDownListFor(model => model.mStatus, ViewBag.status as SelectList)
    @Html.ValidationMessageFor(model => model.mStatus)
</td>

 

//--------------使用SelectList 和 List<SelectListItem>  方式实现下拉

 

控制器

public ActionResult Index()
{
    List<Preson> plist = new List<Preson>() //数据源
    {
        new Preson(){ Id=1, Name="筱菲", Age=25},
        new Preson(){ Id=2, Name="周晶", Age=27},
        new Preson(){ Id=3, Name="雅林", Age=23}
    };


    //--------第一种,用SelectList实现下拉选项
   
    //第一个参数:数据源,第二个参数:表示<select>的 <option>项value值,第三个参数:表示 <select>的<option>的Text文本
    SelectList seList = new SelectList(plist, "Id", "Name");

    //SelectList seList = new SelectList(plist, "Id", "Name",3);//这个3表示Id值为3的项被选中
    ViewData["sPreson"] = seList;



    //--------第二种用List<SelectListItem> 实现下拉选项

    List<SelectListItem> selectListItem = new List<SelectListItem>();
    foreach (var p in plist)
    {
        SelectListItem listitem = new SelectListItem();
        listitem.Selected = (p.Id == 3); //如果Id的值为3,则选中
        listitem.Value = p.Id.ToString();
        listitem.Text = p.Name;
        selectListItem.Add(listitem);
    }

    ViewData["itemPreson"] = selectListItem;

    return View();
}

视图

<body>
    @Html.DropDownList("sPreson")
    @Html.DropDownList("itemPreson")
</body>

 

 

 



发布了565 篇原创文章 · 获赞 202 · 访问量 140万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览