色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

ASP.NET MVC擴(kuò)展帶驗(yàn)證的單選按鈕

瀏覽:68日期:2022-06-08 18:56:00

在ASP.NET MVC4中,HtmlHelper為我們提供了Html.RadioButton()方法用來(lái)顯示Radio Button單選按鈕。如果想顯示一組單選按鈕,通常的做法是遍歷一個(gè)集合把每個(gè)單選按鈕顯示出來(lái)。本篇嘗試寫一個(gè)擴(kuò)展方法用來(lái)展示一組帶驗(yàn)證的單選按鈕。

首先來(lái)擴(kuò)展HtmlHelper,擴(kuò)展方法中接收一個(gè)SelectListItem的集合,遍歷這個(gè)集合把每個(gè)單選按鈕顯示出來(lái),并且讓這些單選按鈕具有不同的id屬性值。

using System.Collections.Generic;using System.Linq.Expressions;using System.Text;using System.Web.Mvc.Html;namespace System.Web.Mvc{    public static class HtmlExtensions     {public static MvcHtmlString RadioButtonListFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper,     Expression<Func<TModel, TProperty>> expression, IEnumerable<SelectListItem> list){    //獲取元數(shù)據(jù)    var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);    var sb = new StringBuilder();    if (list != null)    {foreach (var item in list) {    //把屬性名和集合元素的Value值拼接作為元素的id    var id = string.Format("{0}_{1}", metaData.PropertyName, item.Value);    //創(chuàng)建單選按鈕    var label = htmlHelper.Label(id, HttpUtility.HtmlEncode(item.Text));    var radio = htmlHelper.RadioButtonFor(expression, item.Value, new {id = id}).ToHtmlString();    sb.AppendFormat("<div class=\"RadioButton\">{0}{1}</div>", radio, label); }    }    return MvcHtmlString.Create(sb.ToString());}    }}

假設(shè),現(xiàn)在有一個(gè)View Model,其中的一個(gè)屬性要求必須。

using System.ComponentModel.DataAnnotations;namespace MvcApplication1.Models{    public class Vm    {[Required(ErrorMessage = "必填")]public int CityId { get; set; }    }}

以下City類的集合將作為所有Radio Button的數(shù)據(jù)源。

namespace MvcApplication1.Models{    public class City    {public int Id { get; set; }public string Name { get; set; }    }}

在HomeController中,提供一個(gè)Action方法啊,把City的集合轉(zhuǎn)換成SelectListItem集合傳遞給視圖。

using System.Collections.Generic;using System.Linq;using System.Web.Mvc;using MvcApplication1.Models;namespace MvcApplication1.Controllers{    public class HomeController : Controller    {public ActionResult Index(){    List<City> cities = new List<City>()    {new City(){Id = 1, Name = "青島"},new City(){Id = 2, Name = "濟(jì)南"},new City(){Id = 3, Name = "平度"}    };    ViewData["c"] = from c in citiesselect new SelectListItem() {Text = c.Name, Value = c.Id.ToString()};    return View(new Vm());}[HttpPost]public ActionResult Index(Vm vm){    if (ModelState.IsValid)    {return Content(vm.CityId.ToString());    }    else    {return View(vm);    }}    }}

在_Layout.csthml中,必須具備客戶端驗(yàn)證js。

<head>    <meta charset="utf-8" />    <meta name="viewport" content="width=device-width" />    <title>@ViewBag.Title</title>    @Styles.Render("~/Content/css")    @Scripts.Render("~/bundles/jquery")    @Scripts.Render("~/bundles/jqueryval")</head><body>    @RenderBody()        @RenderSection("scripts", required: false)</body>

在Home/Index.chtml中,使用擴(kuò)展方法顯示Radio Button組。

@model MvcApplication1.Models.Vm@{    ViewBag.Title = "Index";    Layout = "~/Views/Shared/_Layout.cshtml";}<style type="text/css">        .RadioButton { float:left; }</style>@using (Html.BeginForm("Index", "Home", FormMethod.Post, new {id = "addForm"})){    @Html.RadioButtonListFor(v => v.CityId, ViewData["c"] as IEnumerable<SelectListItem>)    @Html.ValidationMessageFor(v => v.CityId)        <input type="submit" value="提交"/>}

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

標(biāo)簽: ASP.NET
相關(guān)文章:
主站蜘蛛池模板: 精品国产香蕉伊思人在线 | 91亚洲自偷手机在线观看 | 成人免费黄网站 | 国产大乳喷奶水在线看 | 日韩精品另类天天更新影院 | 久草在线资源视频 | 国产伦精品一区二区三区四区 | 精品久久久久久久九九九精品 | 一级一片在线播放在线观看 | ⅹxx中国xxx人妖 | 一及毛片 | 最新中文字幕乱码在线 | 99久久免费午夜国产精品 | 99久久国产免费中文无字幕 | 亚洲激情视频网 | 国产亚洲欧美视频 | 欧美视频 亚洲视频 | 国产成人精品999在线观看 | 成人精品视频在线观看 | www.成人网 | 亚洲精品一区二区三区网址 | 欧美日本高清视频在线观看 | 特级毛片8级毛片免费观看 特级毛片免费观看视频 | 成人精品视频一区二区在线 | 成人a影片在线观看 | 九九精品久久久久久噜噜 | 一级做a爰片久久毛片鸭王 一级做a爰全过程免费视频毛片 | 国产亚洲精品久久久久久午夜 | 一级一级一片在线观看 | 欧美一级视频精品观看 | 国产亚洲欧美一区二区三区 | 精品国产日韩久久亚洲 | 亚洲天堂成人在线观看 | 国产成人高清在线观看播放 | 最刺激黄a大片免费观看下截 | 免费一级a毛片在线播放视 免费一级α片在线观看 | 中文字幕亚洲综合久久男男 | 日本一区二区三区四区不卡 | 国产色视频一区二区三区 | 玖草在线播放 | 久久精品成人国产午夜 |