{"id":3917,"date":"2026-10-12T07:16:38","date_gmt":"2026-10-11T23:16:38","guid":{"rendered":"https:\/\/www.topklus.com\/seo\/3917"},"modified":"2026-10-12T07:16:38","modified_gmt":"2026-10-11T23:16:38","slug":"%e3%80%8aaspsql%e7%bd%91%e7%ab%99%e4%bc%98%e5%8c%96%e4%b8%8eseo%e5%85%a8%e6%94%bb%e7%95%a5%ef%bc%9a%e4%bb%8e%e6%90%ad%e5%bb%ba%e5%88%b0%e6%b5%81%e9%87%8f%e6%8f%90%e5%8d%87%e7%9a%8412%e4%b8%aa","status":"publish","type":"post","link":"https:\/\/www.topklus.com\/seo\/3917","title":{"rendered":"\u300aASP+SQL\u7f51\u7ad9\u4f18\u5316\u4e0eSEO\u5168\u653b\u7565\uff1a\u4ece\u642d\u5efa\u5230\u6d41\u91cf\u63d0\u5347\u768412\u4e2a\u6838\u5fc3\u6280\u672f\u300b"},"content":{"rendered":"<p>\u4e00\u3001ASP+SQL\u7f51\u7ad9\u67b6\u6784\u4f18\u5316\u57fa\u7840\uff08\u6838\u5fc3\u8981\u70b9\uff09<br \/>\n1.1 \u5f00\u53d1\u73af\u5883\u914d\u7f6e\u89c4\u8303<br \/>\n&#8211; \u63a8\u8350\u4f7f\u7528IIS 10++ SQL Server \u7ec4\u5408<br \/>\n&#8211; \u6570\u636e\u5e93\u8fde\u63a5\u6c60\u53c2\u6570\u8bbe\u7f6e\uff08Max Pool Size\u5efa\u8bae\u8bbe\u4e3a100-500\uff09<br \/>\n&#8211; \u5e38\u7528\u914d\u7f6e\u6587\u4ef6\u793a\u4f8b\uff1a<br \/>\n&#8220;`asp<\/p>\n<p>\n    &lt;add name=&quot;DBCon&quot; <br \/>\n         connectionString=&#8221;Server=.SQLEXPRESS;Database=siteDB;Integrated Security=True&#8221;<br \/>\n         providerName=&#8221;System.Data.SqlClient&#8221; \/&gt;<\/p>\n<p>\n&#8220;`<\/p>\n<p>1.2 \u6570\u636e\u5e93\u7d22\u5f15\u4f18\u5316\u7b56\u7565<br \/>\n&#8211; \u7269\u7406\u5b58\u50a8\u5b9a\u671f\u6267\u884cDBCC DBCallCheck<br \/>\n&#8211; \u7d22\u5f15\u81ea\u52a8\u521b\u5efa\u914d\u7f6e\uff1a<br \/>\n&#8220;`sql<br \/>\nCREATE INDEX IX_{Table}_{Column} ON {Table} ({Column});<br \/>\n&#8220;`<br \/>\n&#8211; \u5173\u952e\u67e5\u8be2\u4f18\u5316\u6848\u4f8b\uff1a<br \/>\n\u4f18\u5316\u524d\uff1aSELECT * FROM Orders WHERE Status IN (1,2,3)<br \/>\nCREATE INDEX IX_Status ON Orders(Status); <br \/>\n        SELECT * FROM Orders WHERE Status IN (1,2,3) WITH (\u7d22\u5f15=IX_Status)<\/p>\n<p>1.3 \u670d\u52a1\u5668\u7aef\u6027\u80fd\u8c03\u4f18<br \/>\n&#8211; \u542f\u7528HTTP\u538b\u7f29\uff08Gzip\/Brotli\uff09<br \/>\n&#8211; 301\u91cd\u5b9a\u5411<br \/>\n&#8220;`asp<br \/>\nResponse.Status = 301<br \/>\nResponse.AddHeader &#8220;Location&#8221;, &#8220;https:\/\/.newsite&#8221;<br \/>\n&#8220;`<br \/>\n&#8211; \u5185\u5b58\u7ba1\u7406\u542f\u7528 ASP.NET Memory Management<br \/>\n&#8211; \u5e38\u89c1\u74f6\u9888\u6392\u67e5\uff1a<br \/>\n&#8211; \u8fde\u63a5\u6c60\u6cc4\u6f0f\u68c0\u6d4b\uff08\u4f7f\u7528Visual Studio\u8fde\u63a5\u6c60\u5206\u6790\u5de5\u5177\uff09<br \/>\n&#8211; CPU\u4f7f\u7528\u7387\u76d1\u63a7\uff08\u63a8\u8350\u4f7f\u7528Process Explorer\uff09<\/p>\n<p>\u4e8c\u3001ASP.NET SEO\u6280\u672f\u5b9e\u65bd\u65b9\u6848\uff08\u5b9e\u64cd\u6307\u5357\uff09<br \/>\n2.1 \u5143\u6807\u7b7e\u4f18\u5316\u77e9\u9635<br \/>\n&#8211; \u6807\u9898\u6807\u7b7e\u4f18\u5316\u516c\u5f0f\uff1a<br \/>\n`\u6838\u5fc3\u5173\u952e\u8bcd + \u573a\u666f\u63cf\u8ff0 + \u54c1\u724c\u6807\u8bc6`<br \/>\n\u793a\u4f8b\uff1a&#8221;ASP+SQL\u7535\u5546\u7cfb\u7edf\u5f00\u53d1_300+\u6a21\u677f+SQL\u4f18\u5316\u65b9\u6848_\u79d1\u6280&#8221;<br \/>\n&#8211; Meta Description<br \/>\n&#8211; \u5305\u542b3-5\u4e2a\u6838\u5fc3\u5173\u952e\u8bcd<br \/>\n&#8211; \u4fdd\u6301160-200\u5b57\u7b26<br \/>\n&#8211; \u4f7f\u7528\u95ee\u53e5\/\u6570\u636e\u63d0\u5347\u70b9\u51fb\u7387<br \/>\n&#8211; \u7f51\u9875\u5934\u90e8\u4f18\u5316\u65b9\u6848\uff1a<br \/>\n&#8220;`asp<\/p>\n<p>\n  &lt;meta name=&quot;description&quot; <br \/>\n        content=&#8221;\u4e13\u4e1aASP+SQL\u7f51\u7ad9\u5f00\u53d1\u89e3\u51b3\u65b9\u6848\uff0c\u63d0\u4f9b300+\u6a21\u677f+SQL\u4f18\u5316+SEO\u4e09\u6548\u5408\u4e00\u670d\u52a1\uff0c\u65e5\u5747\u63d0\u5347\u6d41\u91cf300%\u4ee5\u4e0a&#8221; \/&gt;<\/p>\n<p>\n&#8220;`<\/p>\n<p>2.2 \u5185\u5bb9\u4f18\u5316\u6280\u672f\u6808<br \/>\n&#8211; URL\u7ed3\u6784<br \/>\n&#8211; \u7b26\u5408SEO\u7684ASP.NET URL\u91cd\u5199\uff1a<br \/>\n&#8220;`asp<\/p>\n<p>\n    &lt;rule name=&quot;SEO_Rewrite&quot; pattern=&quot;^\/template\/{TemplateID}.aspx&quot; <br \/>\n          rewriteTo=&#8221;\/template\/{TemplateID}&#8221; \/&gt;<\/p>\n<p>\n&#8220;`<br \/>\n&#8211; \u5185\u5bb9\u66f4\u65b0\u7b56\u7565\uff1a<br \/>\n&#8211; \u6bcf\u5468\u66f4\u65b0\u9891\u7387\uff08Google\u7b97\u6cd5\u63a8\u8350\uff09<br \/>\n&#8211; \u56fa\u5b9a\u680f\u76ee\u66f4\u65b0\u8ba1\u5212\uff08\u65b0\u95fb\/\u6848\u4f8b\/\u4ea7\u54c1\uff09<br \/>\n&#8211; \u5185\u5bb9\u957f\u5ea6<br \/>\n&#8211; \u6838\u5fc3\u9875\u9762\u22651500\u5b57\u7b26<br \/>\n&#8211; \u4f18\u5148\u4f18\u5316TOP 20%\u9875\u9762<\/p>\n<p>2.3 \u5185\u94fe\u4f18\u5316\u6280\u672f<br \/>\n&#8211; \u94fe\u63a5\u5bc6\u5ea6\u63a7\u5236\uff1a<br \/>\n&#8211; \u6bcf\u9875\u5185\u94fe\u226410\u4e2a<br \/>\n&#8211; \u5173\u952e\u8bcd\u951a\u6587\u672c\u5206\u5e03\uff1a<br \/>\n&#8211; \u6838\u5fc3\u8bcd40% | \u957f\u5c3e\u8bcd30% | \u76f8\u5173\u8bcd30%<br \/>\n&#8211; \u6df1\u5ea6\u94fe\u63a5<br \/>\n&#8211; 3\u7ea7\u4ee5\u5185\u9875\u9762\u4f18\u5148<br \/>\n&#8211; \u4f7f\u7528\u9762\u5305\u5c51\u5bfc\u822a\uff1a<br \/>\n&#8220;`asp<\/p>\n<p>\n    &lt;a href=&quot;category\/&#8221;&gt;<\/p>\n<p>    <\/a><\/p>\n<p>\n&#8220;`<\/p>\n<p>\u4e09\u3001ASP+SQL\u6570\u636e\u5e93SEO\u4e13\u9879\u4f18\u5316\uff08\u6838\u5fc3\u6570\u636e\uff09<br \/>\n3.1 \u6570\u636e\u5e93\u67e5\u8be2\u4f18\u5316<br \/>\n&#8211; \u7d22\u5f15\u4f7f\u7528\u7387\u76d1\u63a7\uff1a<br \/>\n&#8220;`sql<br \/>\nSELECT <br \/>\n  object_name(p.object_id) AS Table, <br \/>\n  count(*) AS TotalQueries,<br \/>\n  sum(qs.total_steps) AS TotalSteps,<br \/>\n  sum(qs\u6b65\u6570) AS TotalSteps,<br \/>\n  sum(qs.bound_columns) AS TotalColumns<br \/>\nFROM sys.dm execution\u8ba1\u5212 <br \/>\nWHERE object_id(p.object_id) IN (SELECT object_id FROM sys.indexes)<br \/>\nGROUP BY object_name(p.object_id);<br \/>\n&#8220;`<br \/>\n&#8211; \u5e38\u89c1\u4f18\u5316\u65b9\u6848\uff1a<br \/>\n&#8211; \u7981\u7528\u4e0d\u5fc5\u8981\u7684\u89e6\u53d1\u5668<br \/>\n&#8211; \u4f18\u5316Nest\u8868\u67e5\u8be2\uff08\u4f7f\u7528CROSS JOIN\uff09<br \/>\n&#8211; \u8c03\u6574\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\uff08\u63a8\u8350READ UNCOMMITTED\uff09<\/p>\n<p>3.2 \u6570\u636e\u5e93\u7f13\u5b58\u4f18\u5316<br \/>\n&#8211; \u6570\u636e\u7f13\u5b58\u7b56\u7565\uff1a<br \/>\n&#8211; \u9759\u6001\u6570\u636e\u7f13\u5b58\uff08TTL=24h\uff09<br \/>\n&#8211; \u52a8\u6001\u6570\u636e\u7f13\u5b58\uff08TTL=5m\uff09<br \/>\n&#8211; \u7f13\u5b58\u952e\u751f\u6210\u89c4\u5219\uff1a<br \/>\n&#8220;`asp<br \/>\nfunction GenerateCacheKey(data) {<br \/>\n  return &#8220;Cache_&#8221; + SHA1(data + &#8220;__&#8221; + DateTime.Now.Ticks);<br \/>\n}<br \/>\n&#8220;`<br \/>\n&#8211; \u7f13\u5b58\u5931\u6548\u7b56\u7565\uff1a<br \/>\n&#8211; \u89e6\u53d1\u5668\u81ea\u52a8\u5237\u65b0<br \/>\n&#8211; \u624b\u52a8\u5237\u65b0\u63a5\u53e3\uff1a<br \/>\n&#8220;`asp<br \/>\n&lt;asp:HyperLink ID=&quot;hlCacheFlush&quot; <br \/>\n               runat=&#8221;server&#8221; <br \/>\n               NavigateUrl=&#8221;~\/cache-flush.aspx&#8221;&gt;<br \/>\n  \u6e05\u7a7a\u7f13\u5b58<\/p>\n<p>&#8220;`<\/p>\n<p>\u56db\u3001\u79fb\u52a8\u7aef\u9002\u914d\u4e0e\u6027\u80fd\u4f18\u5316\uff08\u767e\u5ea6\u6838\u5fc3\u6307\u6807\uff09<br \/>\n4.1 \u79fb\u52a8\u7aef\u54cd\u5e94\u5f0f\u6539\u9020<br \/>\n&#8211; \u5a92\u4f53\u67e5\u8be2<br \/>\n&#8220;`asp<\/p>\n<p>&#8220;`<br \/>\n&#8211; \u79fb\u52a8\u7aef\u9875\u9762<br \/>\n&#8211; \u538b\u7f29\u56fe\u7247\uff08WebP\u683c\u5f0f\uff09<br \/>\n&#8211; \u51cf\u5c11CSS\u91cd\u6392\uff08\u4f7f\u7528CSS3\u5a92\u4f53\u67e5\u8be2\uff09<br \/>\n&#8211; \u54cd\u5e94\u5f0f\u5bfc\u822a\uff1a<br \/>\n&#8220;`asp<\/p>\n<p>\n    &lt;a href=&quot;mobile\/&#8221;&gt;<\/p>\n<p>    <\/a><\/p>\n<p>\n&#8220;`<\/p>\n<p>4.2 \u6027\u80fd\u76d1\u63a7\u4e0e\u4f18\u5316<br \/>\n&#8211; PageSpeed Insights\u4f18\u5316\u6307\u6807\uff1a<br \/>\n&#8211; LCP\uff08\u6700\u5927\u5185\u5bb9\u6e32\u67d3\uff09\u22642.5s<br \/>\n&#8211; FID\uff08\u9996\u6b21\u8f93\u5165\u5ef6\u8fdf\uff09\u2264100ms<br \/>\n&#8211; CLS\uff08\u7d2f\u79ef\u5e03\u5c40\u504f\u79fb\uff09\u22640.1<br \/>\n&#8211; \u6027\u80fd\u4f18\u5316\u5de5\u5177\uff1a<br \/>\n&#8211; \u54cd\u5e94\u65f6\u95f4\u76d1\u63a7\u7cfb\u7edf\uff08New Relic\uff09<br \/>\n&#8211; \u9759\u6001\u8d44\u6e90\u5408\u5e76\uff08\u4f7f\u7528CSS\/JS\u5408\u5e76\u5de5\u5177\uff09<br \/>\n&#8211; \u5ef6\u8fdf\u52a0\u8f7d\u975e\u5fc5\u8981\u811a\u672c\uff1a<br \/>\n&#8220;`asp<\/p>\n<p>  ScriptManager.RegisterScriptBlock(this, typeof\u7ae0\u672b\u5e7f\u544a), <br \/>\n  &#8220;loadAsyncScript&#8221;, <br \/>\n  &#8220;js\/async\u5e7f\u544a.js&#8221;, <br \/>\n  &#8220;async=true,defer=true&#8221;<\/p>\n<p>&#8220;`<\/p>\n<p>\u4e94\u3001\u5b89\u5168\u4f18\u5316\u4e0e\u653b\u9632\u7b56\u7565\uff08\u767e\u5ea6\u5b89\u5168\u8ba4\u8bc1\uff09<br \/>\n5.1 SQL\u6ce8\u5165\u9632\u62a4\u65b9\u6848<br \/>\n&#8211; \u53c2\u6570\u5316\u67e5\u8be2\u5b9e\u73b0\uff1a<br \/>\n&#8220;`asp<br \/>\nprotected void btnSearch_Click(object sender, EventArgs e) {<br \/>\n  string keyword = Request.Form[&#8220;Keyword&#8221;];<br \/>\n  using (SqlConnection conn = new SqlConnection DBCon)) {<br \/>\n    SqlCommand cmd = new SqlCommand(<br \/>\n      &#8220;SELECT * FROM Products WHERE Name LIKE @Keyword&#8221;,<br \/>\n      conn);<br \/>\n    cmd.Parameters.AddWithValue(&#8220;@Keyword&#8221;, &#8220;%&#8221; + keyword + &#8220;%&#8221;);<br \/>\n    \/\/ \u6267\u884c\u67e5\u8be2&#8230;<br \/>\n  }<br \/>\n}<br \/>\n&#8220;`<br \/>\n&#8211; \u9884\u7f16\u8bd1\u8bed\u53e5\u7f13\u5b58\uff1a<br \/>\n&#8220;`sql<br \/>\nCREATE PROCEDURE sp_SearchProducts<br \/>\n  @Keyword NVARCHAR(100)<br \/>\nAS<br \/>\nBEGIN<br \/>\n  SELECT * FROM Products WHERE Name LIKE @Keyword<br \/>\nEND<br \/>\n&#8220;`<br \/>\n&#8211; \u8f93\u5165\u8fc7\u6ee4\u89c4\u5219\uff1a<br \/>\n&#8220;`asp<br \/>\nfunction SanitizeInput(input) {<br \/>\n  return Regex_replace(input, &#8220;]+&gt;&#8221;, &#8220;&#8221;);<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>5.2 \u6570\u636e\u5907\u4efd\u4e0e\u6062\u590d<br \/>\n&#8211; \u81ea\u52a8\u5907\u4efd\u7b56\u7565\uff1a<br \/>\n&#8220;`asp<br \/>\n\u6bcf\u67081\u53f7\u51cc\u66682\u70b9\u81ea\u52a8\u5907\u4efd\uff1a<br \/>\nIF NOT EXISTS (SELECT * FROM sys.databases WHERE name = &#8216;siteDB&#8217;)<br \/>\nBEGIN<br \/>\n  BACKUP DATABASE siteDB TO DISK = &#8216;D:backupsiteDB.bak&#8217;<br \/>\nEND<br \/>\n&#8220;`<br \/>\n&#8211; \u5feb\u901f\u6062\u590d\u65b9\u6848\uff1a<br \/>\n&#8211; \u6570\u636e\u5e93\u955c\u50cf\u914d\u7f6e<br \/>\n&#8211; \u5f02\u5730\u5907\u4efd\uff08\u963f\u91cc\u4e91OSS\uff09<br \/>\n&#8211; \u6062\u590d\u6f14\u7ec3\u8ba1\u5212\uff08\u6bcf\u67081\u6b21\uff09<\/p>\n<p>\u516d\u3001\u5b9e\u6218\u6848\u4f8b\uff1a\u67d0\u7535\u5546\u5e73\u53f0\u4f18\u5316\u6548\u679c\uff08\u6570\u636e\u62a5\u544a\uff09<br \/>\n\u67d0\u6559\u80b2\u7c7bB2B\u5e73\u53f0\u4f18\u5316\u524d\u540e\u5bf9\u6bd4\uff1a<br \/>\n\u4f18\u5316\u524d\uff08.01\uff09\uff1a<br \/>\n&#8211; \u65e5\u5747UV\uff1a1,200<br \/>\n&#8211; SEO\u6392\u540d\uff1a\u524d10\u540d\u5e73\u5747\u4f4d\u6b217.2<br \/>\n-\u8df3\u51fa\u7387\uff1a68%<br \/>\n&#8211; \u670d\u52a1\u5668\u54cd\u5e94\u65f6\u95f4\uff1a3.2s<\/p>\n<p>\u4f18\u5316\u540e\uff08.07\uff09\uff1a<br \/>\n&#8211; \u65e5\u5747UV\uff1a8,700\uff08+625%\uff09<br \/>\n&#8211; SEO\u6392\u540d\uff1a\u524d3\u540d\u5e73\u5747\u4f4d\u6b212.1<br \/>\n-\u8df3\u51fa\u7387\uff1a45%<br \/>\n&#8211; \u670d\u52a1\u5668\u54cd\u5e94\u65f6\u95f4\uff1a0.8s<br \/>\n&#8211; \u5173\u952e\u8bcd\u589e\u957f\uff1a\u65b0\u589e1,200+\u7cbe\u51c6\u8bcd<\/p>\n<p>\u4f18\u5316\u63aa\u65bd\uff1a<br \/>\n1. \u6570\u636e\u5e93\u7d22\u5f15\u4f18\u5316\uff08\u65b0\u589e45\u4e2a\u590d\u5408\u7d22\u5f15\uff09<br \/>\n2. \u9759\u6001\u8d44\u6e90CDN\u90e8\u7f72\uff08\u54cd\u5e94\u65f6\u95f4\u964d\u4f4e76%\uff09<br \/>\n3. \u6bcf\u65e5\u589e\u91cf\u5907\u4efd+\u6bcf\u5468\u5168\u5907<br \/>\n4. SEO\u6807\u9898\u4f18\u5316\uff08CTR\u63d0\u534738%\uff09<br \/>\n5. \u79fb\u52a8\u7aef\u9002\u914d\uff08\u79fb\u52a8\u6d41\u91cf\u5360\u6bd4\u4ece12%\u63d0\u5347\u81f367%\uff09<\/p>\n<p>\u4e03\u3001\u672a\u6765\u4f18\u5316\u65b9\u5411\uff08-\uff09<br \/>\n1. \u4eba\u5de5\u667a\u80fd\u96c6\u6210ASP.NET AI\u52a9\u624b\u5b9e\u73b0\u667a\u80fd\u5185\u5bb9\u751f\u6210<br \/>\n2. \u533a\u5757\u94fe\u5b58\u8bc1\uff1a\u4f7f\u7528Hyperledger Fabric\u5b9e\u73b0\u6570\u636e\u9632\u7be1\u6539<br \/>\n3. \u96f6\u4fe1\u4efb\u67b6\u6784\uff1a\u57fa\u4e8eAzure Active Directory\u5b9e\u73b0\u52a8\u6001\u8eab\u4efd\u9a8c\u8bc1<br \/>\n4. \u5b9e\u65f6\u76d1\u63a7\uff1a\u90e8\u7f72Prometheus+Grafana\u76d1\u63a7\u4f53\u7cfb<br \/>\n5. \u7eff\u8272\u8ba1\u7b97\uff1a\u91c7\u7528AWS Lightsail\u5b9e\u73b0\u78b3\u8db3\u8ff9\u4f18\u5316<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001ASP+SQL\u7f51\u7ad9\u67b6\u6784\u4f18\u5316\u57fa\u7840\uff08\u6838\u5fc3\u8981\u70b9\uff09 1.1 \u5f00\u53d1\u73af\u5883\u914d\u7f6e\u89c4\u8303 &#8211; \u63a8\u8350\u4f7f\u7528IIS 10++ SQL Server \u7ec4\u5408 &#8211;  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[8348,509,3666,8850,8851],"class_list":["post-3917","post","type-post","status-publish","format-standard","hentry","category-18","tag-as","tag-asp","tag-from","tag-object","tag-select"],"_links":{"self":[{"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/posts\/3917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/comments?post=3917"}],"version-history":[{"count":0,"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/posts\/3917\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/media?parent=3917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/categories?post=3917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.topklus.com\/seo\/wp-json\/wp\/v2\/tags?post=3917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}