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。
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。