Csharp/C#教程:是否可以创建自定义ASP.NET MVC强类型HTML帮助程序?分享


是否可以创建自定义ASP.NET MVC强类型HTML帮助程序?

我想知道是否可以在ASP.NET MVC 2中创建自定义强类型HTML Helper? 创建一个常规(读取非强类型)帮助器很简单,但我很难创建强类型版本。 例如,我想创建一个DatePickerFor html帮助器…

任何指导或片段将不胜感激,谢谢你提前! J.P

好吧,我想出来了(这很简单……)。 发布我的一个重载,以防其他人遇到这个问题。

public static string DatePickerFor(this HtmlHelper htmlHelper,Expression> expression) where TModel : class { var inputName = ExpressionHelper.GetExpressionText(expression); return htmlHelper.DatePicker(inputName); } 

我只是尝试了以下内容来创建一个强类型的CKEditor助手,它似乎完美无缺。 这假设您已经在项目中包含了jquery和必要的ckeditor脚本。 看看也设置ckeditor配置可能会很好,但这满足了我目前的需求。

  public static MvcHtmlString CkEditor(this HtmlHelper htmlHelper, string name, string value, object htmlAttributes) { var output = htmlHelper.TextArea(name, value, htmlAttributes).ToString(); output += string.Format("", name); return MvcHtmlString.Create(output); } public static MvcHtmlString CkEditor(this HtmlHelper htmlHelper, string name, string value) { return htmlHelper.CkEditor(name, value, null); } public static MvcHtmlString CkEditorFor(this HtmlHelper htmlHelper, Expression> expression, object htmlAttributes) where TModel : class { ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); return htmlHelper.CkEditor(metadata.PropertyName, metadata.Model as string, htmlAttributes); } public static MvcHtmlString CkEditorFor(this HtmlHelper htmlHelper, Expression> expression) where TModel : class { return htmlHelper.CkEditorFor(expression, null); } 

 public static string DatePickerFor(this HtmlHelper htmlHelper,Expression> expression) where TModel : class { ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); return htmlHelper.DatePicker(metadata.PropertyName); } 

我使用了ModelMetadata,如果你为datepicker创建一个日期时间模板,它也会起作用。

上述就是C#学习教程:是否可以创建自定义ASP.NET MVC强类型HTML帮助程序?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/998262.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐