asp.net-mvc-3 – 在html标签中添加html输入
发布时间:2020-05-24 03:59:09 所属栏目:asp.Net 来源:互联网
导读:所以我使用了 Twitter Bootstrap,我的大部分表单看起来都很棒 div class=control-group @Html.LabelFor(m = m.Prop) div class=controls @Html.EditorFor(m = m.Prop)
|
所以我使用了 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 – Firefox在Ajax请求重定向期间不保留自定义标
- asp.net-mvc – ASP.NET MVC UpdateModel()方法如何工作?
- asp.net – 在Internet Explorer 8中使用ScriptManager.Reg
- asp.net – MVC3 WebImage助手:resize将透明背景转换为黑色
- ASP.NET Core 1.0 WebSocket安装?
- asp.net-mvc-4 – visual studio 2012 RC无法加载类型Syste
- asp.net – 如何将Controller上的Ajax reqest重定向到登录页
- asp.net – 无法访问IIS元数据库
- asp.net-mvc-3 – 方法“OrderBy”必须在方法“跳过”异常之
- asp.net – 如何解决“最大请求长度超出”异常?
推荐文章
站长推荐
- 如何为枚举执行asp.net mvc 4模型绑定?
- asp.net-mvc – 动态加载部分视图
- asp.net-mvc – 用于货币格式的ASP.NET MVC数据注
- 页面刷新导致ASP.NET应用程序中重复的POST
- asp.net-mvc-5 – Sharepoint 2013 MVC 5提供商托
- asp.net-mvc – 使用多值键创建RouteValueDictio
- asp.net-mvc-3 – 在代码MVC Razor中呈现局部视图
- asp.net-mvc-3 – 如何从ASP.NET MVC#输出中删除
- 在Asp.Net中使用JQuery绑定DropDownlists
- 捕获从ASP.NET生成的HTML
热点阅读
