MVC Html 助手 - 对内置助手的控制程度



我对MVC框架中的html助手有一些问题 ASP.NET。 所以...

  1. 我可以覆盖像@Html.HiddenFor这样的内置助手吗?
  2. 我应该override,还是创建一个CustomHiddenFor
  3. 在创建Custom时,如何从ModelMetaData更改值,然后调用内置助手?例如:

    public static MvcHtmlString HiddenSecuredFor<TModel, TProperty>
        (this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes,bool secured)
    {
        ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
        var name = ExpressionHelper.GetExpressionText(expression);
        if (!secured)
        {
            return htmlHelper.HiddenFor(expression,htmlAttributes);
        }
            // Here I want to change the value 
            // from the TModel lets say the property is x => x.Name
            // And I want to make the Name = "Mr. " + Name
        // Call the inbuild helper with the expression value changes.
        return htmlHelper.HiddenFor(expression, htmlAttributes);
    }
    
  1. 是 - 如何覆盖 @Html.LabelFor 模板?
  2. 这取决于 - 如果您要添加始终需要的功能,并且希望其他开发人员在不必了解的情况下使用,则覆盖是一个不错的选择。否则,创建一个调用原始的自定义是一个好方法。

相关内容

  • 没有找到相关文章

最新更新