CRM_EasyUI_Comon/TextBoxForExtension.cs
(开头部分) 10KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web;
using System.Diagnostics.CodeAnalysis;
using System.Linq.Expressions;
using System.Web.Routing;
namespace System.Web.Mvc.Html
{
public static class TextBoxForExtension
{
public static MvcHtmlString BsTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression, string css = "", string placeholder = "", string Readonly = "", string value = "")
{
TagBuilder tagBuilder = new TagBuilder("input");
ModelMetadata metadata = ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData);
//tagBuilder.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(ExpressionHelper.GetExpressionText(expression), metadata));
string name = ExpressionHelper.GetExpressionText(expression);
// var vas = htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata);
htmlHelper.ValidateFor(expression);
tagBuilder.MergeAttribute("name", name);
if (!string.IsNullOrEmpty(placeholder))
tagBuilder.MergeAttribute("placeholder", placeholder);
tagBuilder.GenerateId(name);
tagBuilder.MergeAttribute("type", "text");//核心代码,直接通过这个方法可以获取属性上的验证信息,如:“data-val= ....”。有一点要注意,在一个属性上,调用了这个方法完成后。mvc底层代码会自动释放这个验证对象。也就是说,一个属性的输入文本框只会第一个上边会生成相关的验证。 var vas = htmlHelper.GetUnobtrusiveValidationAttributes(name,metadata); if (!string.IsNullOrEmpty(placeholder)) { tagBuilder.MergeAttribute("placeholder",placeholder); } //string类型,看有没长度限制,如果有,增加maxlength,minlength
if (!string.IsNullOrEmpty(value))
tagBuilder.MergeAttribute("value", value.Trim());
if (!string.IsNullOrEmpty(Readonly) && Readonly == "Y")
tagBuilder.MergeAttribute("readonly", Readonly);
tagBuilder.AddCssClass("form-control");
if (!string.IsNullOrEmpty(css))
{
tagBuilder.AddCssClass(css);
} //约定,属性名以day或者date结束的属性为日体,为其增加日期选择功能。
ModelState modelState;
if (htmlHelper.ViewData.ModelState.TryGetValue(name, out modelState))
{
if (modelState.Errors.Count > 0)
{
tagBuilder.AddCssClass(HtmlHelper.ValidationInputCssClassName);
}
}
tagBuilder.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata));
return new MvcHtmlString(tagBuilder.ToString());
}
public static MvcHtmlString BsTextBox(this HtmlHelper htmlHelper, string name = "",
string css = "", string placeholder = "", string Readonly = "", string value = "")
{
TagBuilder tagBuilder = new TagBuilder("input");
tagBuilder.MergeAttribute("type", "text");
tagBuilder.MergeAttribute("name", name, true);
tagBuilder.GenerateId(name);
if (!string.IsNullOrEmpty(placeholder))
后面还有 131 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
