首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有可能创建一个自定义的HTML强类型ASP.NET Helper?

有没有可能创建一个自定义的HTML强类型ASP.NET Helper?
EN

Stack Overflow用户
提问于 2010-01-23 14:49:54
回答 3查看 4.6K关注 0票数 16

我想知道是否有可能在ASP.NET MVC2中创建一个自定义的强类型HTML Helper?创建一个常规的(读不是强类型的)帮助器很简单,但是我在创建强类型版本时遇到了困难。例如,我想创建一个DatePickerFor html助手...

任何指导或片段都将不胜感激,提前谢谢!JP

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-23 15:16:46

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

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

Stack Overflow用户

发布于 2010-09-30 00:49:11

我刚刚尝试了以下方法来创建一个强类型的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("<script type=\"text/javascript\">$(document).ready(function(){{ $('#{0}').ckeditor(); }});</script>", 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<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> 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<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression) where TModel : class
    {
        return htmlHelper.CkEditorFor(expression, null);
    }
票数 4
EN

Stack Overflow用户

发布于 2010-08-09 18:00:43

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

我用的是ModelMetadata,如果你为datepicker创建了一个datetime模板,它也会起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2122424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档