asp.net-mvc-3 – 在html标签中添加html输入
发布时间:2020-12-15 23:11:40 所属栏目:asp.Net 来源:网络整理
导读:所以我使用了 Twitter Bootstrap,我的大部分表单看起来都很棒 div class="control-group" @Html.LabelFor(m = m.Prop) div class="controls" @Html.EditorFor(m = m.Prop) /div @Html.ValidationMessageFor(model = model.Prop) /div 唯一的问题是无线电按钮
所以我使用了
Twitter Bootstrap,我的大部分表单看起来都很棒
<div class="control-group"> @Html.LabelFor(m => m.Prop) <div class="controls"> @Html.EditorFor(m => m.Prop) </div> @Html.ValidationMessageFor(model => model.Prop) </div> 唯一的问题是无线电按钮和复选框. Twitter Bootstrap调用HTML5样式标签,其中包含无线电或复选框输入内部的标签标签 <label class="checkbox"> <input type="checkbox"> Check me out </label> 如果我不能用@Html创建这些,或者重载,我至少可以使用Labelfor创建的文本? <label class="checkbox"> @Html.EditorFor(m=> m.Prop) @Html.TheVariableThatContainsTheTextThatLabelForUsesFor(m => m.Prop) </label> 解决方法
为什么你不能用@Html创建这些.如果你编写自己的扩展方法(见下文),应该这样做吗?
public static class HtmlHelperExtensions { public static MvcHtmlString MyCheckBoxFor<TModel>(this HtmlHelper<TModel> htmlHelper,Expression<Func<TModel,bool>> expression,object htmlLabelAttributes = null,object htmlCheckBoxAttributes = null) { var checkbox = htmlHelper.CheckBoxFor(expression,htmlCheckBoxAttributes); var labelTag = new TagBuilder("label"); labelTag.AddCssClass("checkbox"); labelTag.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlLabelAttributes)); labelTag.InnerHtml = checkbox.ToString(); return new MvcHtmlString(labelTag.ToString()); } } 编辑: 这个修订版本怎么样这正是标签所做的. public static class HtmlHelperExtensions { public static MvcHtmlString MyCheckBoxFor<TModel>(this HtmlHelper<TModel> htmlHelper,object htmlCheckBoxAttributes = null) { var checkbox = htmlHelper.CheckBoxFor(expression,htmlCheckBoxAttributes); var labelTag = new TagBuilder("label"); var checkboxName = ExpressionHelper.GetExpressionText(expression); labelTag.AddCssClass("checkbox"); labelTag.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(htmlLabelAttributes)); labelTag.InnerHtml = checkbox.ToString() + LabelHelper(ModelMetadata.FromLambdaExpression(expression,htmlHelper.ViewData),checkboxName); return new MvcHtmlString(labelTag.ToString()); } private static MvcHtmlString LabelHelper(ModelMetadata metadata,string fieldName) { string labelText; var displayName = metadata.DisplayName; if (displayName == null) { var propertyName = metadata.PropertyName; labelText = propertyName ?? fieldName.Split(new[] { '.' }).Last(); } else { labelText = displayName; } if (string.IsNullOrEmpty(labelText)) { return MvcHtmlString.Empty; } return new MvcHtmlString(labelText); } } 我应该注意,使用MVC 4有一个DisplayNameFor Helper,所以整个标签业务可以简化一下. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – MVC 4 Razor – 动态命名javascript函数
- ASP.NET Mvc Api:设置cookie然后302/303 Redirect丢失cook
- [译]ASP.NET Core 2.0 路由引擎详解
- 错误处理 – 是否可以在ASP Classic中的try-catch像错误处理
- asp.net – 使用FindControl:在窗体视图中访问控件
- asp.net – 处理程序执行子请求时出错’System.Web.Mvc.Htt
- asp.net-mvc-4 – ASP.NET MVC 4在哪里存储帐户信息?
- asp.net-mvc-3 – MVC 3不显眼的验证 – 有条件地禁用/启用
- asp.net-mvc-3 – 在MVC中的Http Post之后渲染相同的视图
- asp.net:如何在button onclick上使用eventargs进行参数传递
推荐文章
站长推荐
- asp.net – .NET 4中的SignalR支持
- asp.net – 使用“DataType.Upload”属性为属性生
- asp.net-mvc – 避免“类或CssClass值未定义”AS
- ASP.NET MVC通过ActionLink传递模型
- asp.net – INSERT存储过程不起作用?
- asp.net-mvc-3 – 如何在ASP.NET MVC 3中分离代码
- asp.net – ExecuteReader需要时间,而不是SQL服务
- 令人敬畏的ASP.NET和C#教程初学者
- ASP.NET无法正确处理逗号分隔的cookie
- asp.net-mvc-3 – 如何使用DropdownList助手正确
热点阅读