我有几个复制粘贴的控件。我想避免它,所以我将所有HTML生成逻辑移动到静态助手类中。但是当我使用它时,我的HTML会在引号中转义,但我希望以原始HTML显示它。这是两个问题:
我目前的用例是:
<div class="panel-body panel-body-table">
@(WuiHelper<int>.RenderIntegerInput(Model.Config, x => x.PatchSize, "sourceObserver_patchSize", "Patch Size", 1, 1000000))
</div>
但正如我所说,它在引号中转义了html,因此它呈现为纯文本(方法的返回类型为string
)。
似乎删除了@Html
辅助类。我目前的web.config
是:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
答案 0 :(得分:0)
使用IHtmlContent
代替string
作为方法的返回值,并将字符串包装在HtmlEncodedString
中解决。
整个签名工作:
public static IHtmlContent RenderIntegerInput<T>(CustomizableConfig<T> model, Func<T, TParam> func, string id, string name, int minValue, int maxValue)
{
//...
string oldStringResult = ... // generating HTML
return new HtmlEncodedString(oldStringResult);
}