How to extend html.textboxfor to remove the name attribute?

后端 未结 2 1033
闹比i
闹比i 2020-12-19 15:05

I want to extend the helper to make it like this:


@html.TextBoxFor(x=>x.CustomerId).ReadOnly()

and output the input element without the

2条回答
  •  感情败类
    2020-12-19 15:23

    This should do the trick:

    public static class MyInputExtensions
    {
        public static MvcHtmlString NameLessTextBoxFor(this HtmlHelper htmlHelper, Expression> expression)
        {
            var textBox = htmlHelper.TextBoxFor(expression);
    
            string pattern = @"name=""([^""]*)""";
    
            string fixedHtml = Regex.Replace(textBox.ToHtmlString(), pattern, "");
    
            return new MvcHtmlString(fixedHtml);
        } 
    }
    

    Usage:

    @Html.NameLessTextBoxFor(x=> x.CustomerId)
    

提交回复
热议问题