我正在尝试编写我自己的小 HTML 助手,它的行为很像 DropDownListFor
但它不会受到相同的 problems 的影响。我以前遇到过。我们不讨论 DropDownListFor
是否有缺陷——这不是这个问题的目的。
无论如何,MVC 人员将 ToMvcHtmlString
设为内部而不是公开的原因是什么?
最佳答案
我想我会为那些可能正在寻找解决方法并偶然发现这个问题的人发布一个简单的解决方法。
虽然 ToMvcHtmlString 是内部的,但很容易绕过它,因为它使用公共(public)方法:
来自 MVC 源:
internal MvcHtmlString ToMvcHtmlString(TagRenderMode renderMode) {
return MvcHtmlString.Create(ToString(renderMode));
}
MvcHtmlString.Create 和 TagBuilder.ToString 都是公开的,所以只需替换
return tagBuilder.ToMvcHtmlString(TagRenderMode.Normal);
与
return MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));
一切顺利!对我很有用。不知道他们为什么还要费心制作一个单独的内部方法。
关于c# - ASP.NET MVC : Why is `ToMvcHtmlString` not public?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3353007/