ASP.NET 5 中的 System.Web.Mvc.Html.InputExtensions 相当于什么?

What is the equivalent of System.Web.Mvc.Html.InputExtensions in ASP.NET 5?

ASP.NET 4 中使用的 System.Web.Mvc.Html.InputExtensions 的 ASP.NET 5 是什么?

参见下面的示例:

public static class CustomHelpers
{
    // Submit Button Helper
    public static MvcHtmlString SubmitButton(this HtmlHelper helper, string buttonText)
    {
        string str = "<input type=\"submit\" value=\"" + buttonText + "\" />";
        return new MvcHtmlString(str);
    }

    // Readonly Strongly-Typed TextBox Helper
    public static MvcHtmlString TextBoxFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression, bool isReadonly)
    {
        MvcHtmlString html = default(MvcHtmlString);

        if (isReadonly)
        {
            html = System.Web.Mvc.Html.InputExtensions.TextBoxFor(htmlHelper,
                expression, new { @class = "readOnly",
                @readonly = "read-only" });
        }
        else
        {
            html = System.Web.Mvc.Html.InputExtensions.TextBoxFor(htmlHelper, expression);
        }
        return html;
    }
}

对于ASP.NET 4代码:

    MvcHtmlString html = 
        System.Web.Mvc.Html.InputExtensions.TextBoxFor(
            htmlHelper, expression);

ASP.NET5 等价于:

Microsoft.AspNet.Mvc.Rendering.HtmlString html = 
     (Microsoft.AspNet.Mvc.Rendering.HtmlString)    
         Microsoft.AspNet.Mvc.Rendering.HtmlHelperInputExtensions.TextBoxFor(
             htmlHelper, expression);

或使用您页面中包含的命名空间

@Microsoft.AspNet.Mvc.Rendering;

上面写着:

HtmlString html = (HtmlString)HtmlHelperInputExtensions.TextBoxFor(htmlHelper,expression);

注意它的 return 类型是一个接口 IHtmlContent 而不是 MvcHtmlString 如 ASP.NET 4.

MvcHtmlString 已在 ASP.NET 5 中替换为 HtmlString

由于 HtmlString 的接口 IHtmlContent 是 returned 而不是 HtmlString 本身,因此您必须将 return 转换为 HtmlString

但是你想在 ASP.NET 5 中使用它作为扩展方法 所以你应该将你的方法 return 类型更改为 IHtmlContent 并将你的代码更改为:

 IHtmlContent html = HtmlHelperInputExtensions.TextBoxFor(htmlHelper,
                                          expression);
 return html;

可以找到源代码here