@@ -81,17 +81,24 @@ public static IHtmlString React<T>(
81
81
string containerClass = null
82
82
)
83
83
{
84
- var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
85
- if ( ! string . IsNullOrEmpty ( htmlTag ) )
84
+ try
86
85
{
87
- reactComponent . ContainerTag = htmlTag ;
86
+ var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
87
+ if ( ! string . IsNullOrEmpty ( htmlTag ) )
88
+ {
89
+ reactComponent . ContainerTag = htmlTag ;
90
+ }
91
+ if ( ! string . IsNullOrEmpty ( containerClass ) )
92
+ {
93
+ reactComponent . ContainerClass = containerClass ;
94
+ }
95
+ var result = reactComponent . RenderHtml ( clientOnly , serverOnly ) ;
96
+ return new HtmlString ( result ) ;
88
97
}
89
- if ( ! string . IsNullOrEmpty ( containerClass ) )
98
+ finally
90
99
{
91
- reactComponent . ContainerClass = containerClass ;
100
+ Environment . ReturnEngineToPool ( ) ;
92
101
}
93
- var result = reactComponent . RenderHtml ( clientOnly , serverOnly ) ;
94
- return new HtmlString ( result ) ;
95
102
}
96
103
97
104
/// <summary>
@@ -114,31 +121,38 @@ public static IHtmlString ReactWithInit<T>(
114
121
T props ,
115
122
string htmlTag = null ,
116
123
string containerId = null ,
117
- bool clientOnly = false ,
124
+ bool clientOnly = false ,
118
125
string containerClass = null
119
126
)
120
127
{
121
- var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
122
- if ( ! string . IsNullOrEmpty ( htmlTag ) )
123
- {
124
- reactComponent . ContainerTag = htmlTag ;
125
- }
126
- if ( ! string . IsNullOrEmpty ( containerClass ) )
128
+ try
127
129
{
128
- reactComponent . ContainerClass = containerClass ;
129
- }
130
- var html = reactComponent . RenderHtml ( clientOnly ) ;
130
+ var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
131
+ if ( ! string . IsNullOrEmpty ( htmlTag ) )
132
+ {
133
+ reactComponent . ContainerTag = htmlTag ;
134
+ }
135
+ if ( ! string . IsNullOrEmpty ( containerClass ) )
136
+ {
137
+ reactComponent . ContainerClass = containerClass ;
138
+ }
139
+ var html = reactComponent . RenderHtml ( clientOnly ) ;
131
140
132
141
#if LEGACYASPNET
133
- var script = new TagBuilder ( "script" )
134
- {
135
- InnerHtml = reactComponent . RenderJavaScript ( )
136
- } ;
142
+ var script = new TagBuilder ( "script" )
143
+ {
144
+ InnerHtml = reactComponent . RenderJavaScript ( )
145
+ } ;
137
146
#else
138
147
var script = new TagBuilder ( "script" ) ;
139
148
script . InnerHtml . AppendHtml ( reactComponent . RenderJavaScript ( ) ) ;
140
149
#endif
141
- return new HtmlString ( html + System . Environment . NewLine + script . ToString ( ) ) ;
150
+ return new HtmlString ( html + System . Environment . NewLine + script . ToString ( ) ) ;
151
+ }
152
+ finally
153
+ {
154
+ Environment . ReturnEngineToPool ( ) ;
155
+ }
142
156
}
143
157
144
158
/// <summary>
@@ -148,18 +162,25 @@ public static IHtmlString ReactWithInit<T>(
148
162
/// <returns>JavaScript for all components</returns>
149
163
public static IHtmlString ReactInitJavaScript ( this IHtmlHelper htmlHelper , bool clientOnly = false )
150
164
{
151
- var script = Environment . GetInitJavaScript ( clientOnly ) ;
152
- #if LEGACYASPNET
153
- var tag = new TagBuilder ( "script" )
165
+ try
154
166
{
155
- InnerHtml = script
156
- } ;
157
- return new HtmlString ( tag . ToString ( ) ) ;
167
+ var script = Environment . GetInitJavaScript ( clientOnly ) ;
168
+ #if LEGACYASPNET
169
+ var tag = new TagBuilder ( "script" )
170
+ {
171
+ InnerHtml = script
172
+ } ;
173
+ return new HtmlString ( tag . ToString ( ) ) ;
158
174
#else
159
175
var tag = new TagBuilder ( "script" ) ;
160
176
tag . InnerHtml . AppendHtml ( script ) ;
161
177
return tag ;
162
178
#endif
179
+ }
180
+ finally
181
+ {
182
+ Environment . ReturnEngineToPool ( ) ;
183
+ }
163
184
}
164
185
}
165
186
}
0 commit comments