{"id":2124,"date":"2006-05-07T16:36:04","date_gmt":"2006-05-07T23:36:04","guid":{"rendered":"http:\/\/hi-alex.com\/?p=2124"},"modified":"2006-05-07T16:36:04","modified_gmt":"2006-05-07T23:36:04","slug":"htmlcontrol-vs-webcontrol","status":"publish","type":"post","link":"http:\/\/www.hi-alex.com\/?p=2124","title":{"rendered":"HTMLControl vs WebControl"},"content":{"rendered":"<p>\u7a81\u7136\u60f3\u5230\u4e00\u4e2a\u95ee\u9898\uff0c\u65e2\u7136asp.net\u63d0\u4f9b\u4e86WebControl\uff0c\u529f\u80fd\u53c8\u90a3\u4e48\u5f3a\u5927\uff0c\u63a5\u53e3\u53c8\u90a3\u4e48\u7edf\u4e00\uff0c\u4e3a\u4ec0\u4e48\u8fd8\u8981\u7528HTMLControl\u5462\uff1f<br \/>\nGoogle\u4e0a\u627e\u4e86\u4e00\u4e0b\uff0c\u4e2d\u6587\u7ed3\u679c\u51e0\u4e4e\u5b8c\u5168\u7edf\u4e00\uff1ahttp:\/\/www.google.com\/search?hl=zh-CN&#038;inlang=zh-CN&#038;newwindow=1&#038;q=htmlcontrol+webcontrol&#038;lr=lang_zh-CN%7Clang_zh-TW<br \/>\n[quote]Web\u63a7\u4ef6\u548cHtml\u63a7\u4ef6\u867d\u7136\u597d\u591a\u529f\u80fd\u76f8\u540c\u5e76\u4e14\u957f\u5f97\u5f88\u50cf<br \/>\n\u4f46\u662f\u5b83\u4eec\u7684\u5185\u90e8\u5b9e\u73b0\u673a\u5236\u662f\u5b8c\u5168\u4e0d\u4e00\u6837\u7684<br \/>\nWeb\u63a7\u4ef6\u8981\u6bd4Html\u63a7\u4ef6\u6267\u884c\u6548\u7387\u8981\u597d<br \/>\n1. \u4f7f\u7528\u8d77\u6765\u4e5f\u76f8\u5f53\u65b9\u4fbf,\u4e3e\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50,\u4f8b\u5982Button\u7684\u751f\u6210:<br \/>\nHtml\u63a7\u4ef6\u662f\u5c06\u5e9e\u5927\u63a7\u4ef6\u96c6\u5408\u5168\u90e8\u5f04\u5230\u9875\u9762\u4e2d\uff0c\u7528\u5230\u54ea\u4e2a\u529f\u80fd\uff0c\u5c31\u8bbe\u7f6e\u4e00\u4e0b\u5c5e\u6027,\u5982\u4e0b:<br \/>\n<input type=submit\/button runat=server><br \/>\n\u8fd9\u6837\u4f1a\u5360\u7528\u76f8\u5f53\u5927\u7684\u63a7\u4ef6\u8d44\u6e90<br \/>\nWeb\u63a7\u4ef6\u662f\u5c06\u96c6\u6210\u5f0f\u7684\u62c6\u89e3\u6210\u5355\u529f\u80fd\u7684\uff1a<br \/>\n<asp:button id=\"btnOK\" \/><br \/>\n\u8fd9\u6837\u5c31\u53ef\u4ee5\u8282\u7701\u4e0d\u5fc5\u8981\u7684\u63a7\u4ef6\u6240\u5360\u7528\u7684\u8d44\u6e90\u4e86<br \/>\n2.Web\u63a7\u4ef6\u5177\u6709\u56de\u9001\u529f\u80fd,\u80fd\u591f\u7528ViewState\u7ef4\u6301\u63a7\u4ef6\u7684\u72b6\u6001.<br \/>\nHtml\u63a7\u4ef6\u5219\u4e0d\u80fd,\u5f53\u70b9\u51fb\u9875\u9762\u7684\u64cd\u4f5c\uff0c\u5176\u72b6\u6001\u5c31\u4f1a\u4e22\u5931.<br \/>\n\u53ef\u4ee5\u505a\u8fd9\u6837\u7684\u4e00\u4e2a\u5b9e\u9a8c:<br \/>\nI. \u5206\u522b\u5efa\u7acb\u4e24\u4e2a\u6587\u4ef6: a.html b.aspx<br \/>\nII.\u5728a.html\u9875\u9762\u4e2d\u52a0Html\u63a7\u4ef6\u7684RadioButton\u548c\u4e00\u4e2abutton\uff0c\u5728b.aspx\u4e2d\u52a0Web\u63a7\u4ef6\u7684adioButton\u548c\u4e00\u4e2abutton<br \/>\nIII.a.html\u76f4\u63a5\u53cc\u51fb\u6d4f\u89c8\u5668\u8fd0\u884c,b.aspx\u901a\u8fc7IIS\u8fd0\u884c<br \/>\nIV.\u5728a.html\u8fd0\u884c\u754c\u9762\u4e2d\uff0c\u9009\u4e2dRadioButton,\u518d\u5355\u51fbButton\u6309\u94ae\uff0c\u4f1a\u53d1\u73b0RadioButton\u4f1a\u53d6\u6d88\u9009\u4e2d(\u4e22\u5931\u5176\u72b6\u6001),\u4f46\u5728b.aspx\u9875\u9762\u6267\u884c\u540c\u6837\u7684\u64cd\u4f5c\uff0cRadioButton\u4e0d\u4f1a\u4e22\u5931\uff0c\u56e0\u4e3aViewState\u7ed9\u5b83\u4fdd\u5b58\u4e86\u72b6\u6001. \u60a8\u53ef\u4ee5\u5728\u8fd0\u884c\u754c\u9762\u70b9\u51fb\u6d4f\u89c8\u5668\u83dc\u5355&#8221;\u67e5\u770b&#8221;->\u201c\u6e90\u6587\u4ef6&#8221;,\u6253\u5f00Html\u4ee3\u7801\u6587\u4ef6\uff0c\u627e\u5230\u52a0\u5bc6\u540e\u7684ViewState,\u7c7b\u4f3c\u4e8e\u4e0b\u9762:<br \/>\n<input type=\"hidden\" name=\"_VIEWSTATE\" value=\"dDw0ajfmafmjfzzmj4\"\/><br \/>\n\u5176\u5b9eViewState\u5b9e\u73b0\u539f\u7406\u4e5f\u662f\u5c06\u4e00\u4e9b\u4fe1\u606f\u653e\u5230\u9690\u85cf\u7684\u4e00\u4e2a\u63a7\u4ef6\u4e2d\uff0c\u5e76\u4e14asp.net\u751f\u6210\u7684ViewState\u4fe1\u606f<br \/>\n\u662f\u5b58\u50a8\u5728\u5ba2\u6237\u7aef\u7684<br \/>\n\u8fd9\u91cc\u8981\u6ce8\u610f\u7684\u4e00\u70b9\u662f\uff1a<br \/>\n\u53ea\u6709\u5f53\u683c\u5f0f\u4e3a*.aspx\u6587\u4ef6\uff0c\u5e76\u4e14\u63a7\u4ef6\u5177\u6709\u5c5e\u6027:&#8221;runat=server&#8221;\u65f6\uff0c\u56de\u9001\u529f\u80fd\u624d\u80fd\u6253\u5f00<br \/>\n3. Html\u63a7\u4ef6\u4e0eWeb\u63a7\u4ef6\u6700\u5927\u7684\u533a\u522b\u662f\u5b83\u4eec\u5bf9\u4e8b\u4ef6\u5904\u7406\u7684\u65b9\u6cd5\u4e0d\u540c\u3002\u5bf9\u4e8eHtml\u7a97\u4f53\u63a7\u4ef6\uff0c\u5f53\u5f15\u53d1\u4e00\u4e2a\u4e8b\u4ef6\u65f6\uff0c\u6d4f\u89c8\u5668\u4f1a\u5904\u7406\u5b83\u3002\u4f46\u5bf9\u4e8eWeb\u63a7\u4ef6\uff0c\u4e8b\u4ef6\u4ec5\u7531\u6d4f\u89c8\u5668\u751f\u6210\uff0c\u4f46\u6d4f\u89c8\u5668\u4e0d\u4f1a\u5904\u7406\u5b83\uff0c\u5ba2\u6237\u7aef\u8981\u7ed9\u670d\u52a1\u5668\u53d1\u4e2a\u4fe1\u606f\uff0c\u544a\u8bc9\u670d\u52a1\u5668\u5904\u7406\u4e8b\u4ef6\u3002 \u4e0d\u8fc7\u6709\u4e9b\u4e8b\u4ef6\uff0c\u6bd4\u5982:<br \/>\n\u6309\u4e0b\u952e\/\u79fb\u52a8\/\u9f20\u6807\u7b49\u4e8b\u4ef6\uff0cAsp.net\u4e2d\u6ca1\u6709\u8fd9\u4e9b\u4e8b\u4ef6(\u56e0\u4e3a\u8fd9\u4e9b\u4e8b\u4ef6\u5373\u65f6\u6027\u5f3a\uff0c\u670d\u52a1\u5668\u5904\u7406\u5f97\u4e0d\u591f\u53ca\u65f6)\uff0c\u8fd9\u65f6\u5019Html\u63a7\u4ef6\u5c31\u53d1\u6325\u5176\u4f5c\u7528\u4e86\uff0c\u7ed3\u5408Html\u4e8b\u4ef6<br \/>\n\u534f\u52a9\u5b8c\u6210.<br \/>\n[\/quote]<br \/>\n\u5f80\u540e\u7ffb\u4e86n\u9875\uff0c\u624d\u627e\u5230\u4e00\u6761\u6bd4\u8f83\u8be6\u7ec6\u7684\u82f1\u6587\u8d44\u6599 http:\/\/www.codecomments.com\/archive289-2005-9-607043.html<br \/>\n[quote]<br \/>\nThis can be confusing to new ASP.Net developers. In fact, it is important to distinguish between several different types of ASP.Net Controls. Let me elaborate, if I may:<br \/>\nTo begin with, let&#8217;s start with the parent NameSpace\/Class for all ASP.Net Controls: System.Web.UI.Control. All ASP.Net Controls inherit this class.<br \/>\nUnder this, there are about a dozen different classes and NameSpaces. I will only mention the most important ones here:<br \/>\nSystem.Web.UI.HtmlControls.HtmlControl<br \/>\nThis is the base class from which all HtmlControls are derived. An HtmlControl is, at the very least, a simple, client-side HTML element, such as <span> (Label), <\/p>\n<form> (HtmlForm), or <\/p>\n<table> (HtmlTable). There is no server-side aspect to any HtmlControl, unless you add a runat=&#8221;server&#8221; attribute to it. Adding this attribute gives you server-side control over the client-side HTML. You can create an HtmlControl from any client-side<br \/>\nHTML element. There are several ready-made HtmlControls, and an HtmlGenericControl which you can use for any other HTML element.<br \/>\nSystem.Web.UI.TemplateControl<br \/>\nThis is the base Class for any ASP.Net Control that uses an HTML Template. There are 2 ready-made classes in the CLR that inherit this class.<br \/>\nSystem.Web.UI.Page, and System.Web.UI.UserControl. Generally, when people talk about &#8220;Web Controls,&#8221; they are talking about HtmlControls, WebControls, or the UserControl class, and not the Page class, although the Page class is, in fact a &#8220;Web Control&#8221; (Note the space in the term, which distinguishes &#8220;Web Control&#8221; from the class WebControl).<br \/>\nA UserControl is a Templated Control that is a container for pure HTML and other Web Controls. Of all the &#8220;Web Controls&#8221; that are used frequently in ASP.Net, the UserControl is the only one that has an HTML Template. It allows a block of HTML and server-side Controls to be treated as a single unit, or Control.<br \/>\nSystem.Web.UI.WebControls<br \/>\nThis is a NameSpace, not a class. It has 6 different top-level classes:<br \/>\nSystem.Web.UI.WebControls.Literal<br \/>\nThis class is used to encapsulate pure HTML in a container. It does nothing else. As ASP.Net is fully object-oriented, any HTML in a template that is not a server-side control is encapsulated in a Literal Control at run-time. It can also be used to pop any block of HTML into a Page or Control at run-time.<br \/>\nSystem.Web.UI.WebControls.PlaceHolder<br \/>\nThis class is used, quite literally, as a &#8220;place holder.&#8221; It renders no HTML, but as a &#8220;Web Control,&#8221; (System.Web.UI.Conrol) it has a Controls Collection to which any other Control can be added. As it exists in a certain location in a Page or other Control, any Control can be popped into it at run-time. A UserControl could be used for this, by not having anything in it. But what would the purpose of the Template be? This class is not Templated, so it is easier to work with for this purpose.<br \/>\nSystem.Web.UI.WebControls.Repeater<br \/>\nSystem.Web.UI.WebControls.RepeaterItem<br \/>\nThese 2 WebControls comprise a Repeater Control. The Repeater is a container for RepeaterItems. In addition, it has properties that allow for the addition of a number of System.Web.UI.ITemplate classes for fomatting the data contained in it. A Repeater is a sort of hybrid. While it is not a Templated Control, it is hosted in a Templated Control, and the Templates in it are placed in the Template of the hosting Templated Control. It is used for binding aggregate data (arrays, Collections, etc) to a block of repeating HTML in any format desired.<br \/>\nSystem.Web.UI.WebControls.WebControl<br \/>\nThis is the base class for most of the Controls that are often confused with HtmlControls. A WebControl is a Control that ALWAYS has a server-side component, and WebControls all share the same fields, properties and methods of System.Web.UI.WebControl. In addition, each WebControl has fields, properties, and methods that correspond uniquely to the type of HTML element that the WebControl renders and interacts with at run-time.<br \/>\nHtmlControls are, therefore, by nature, leaner (consume less resources) than WebControls, but have less functionality as well.<br \/>\nSystem.Web.UI.WebControls.Xml<br \/>\nThis class displays XML without any formatting or using XSLT. It is genreally used to display embedded XML in a web page.<br \/>\nIn summary, the term &#8220;Web Control&#8221; is a fairly common, and confusing term that is generally used to encompass HtmlControls, WebControls, and the UserControl ASP.Net System.Web.UI.Control classes. It is important to distinguish between what type of &#8220;Web Control&#8221; is being discussed. The main differences between these 3 types of Controls are:<br \/>\nHtmlControls are lightweight Controls that can represent pure HTML, or add server-side functionality to client-side HTML.<br \/>\nWebControls are Controls that always have a server-side class associated with them, and provide a common server-side functionality for working with various HTML elements, and specific functionality for specific HTML elements.<br \/>\nA UserControl is a Templated Control which has a Template file, a container for both pure HTML and server-side class references in it, and allows for server-side manipulation of the server-side Controls in it. It allows a block of HTML and server-side Controls to be treated as a single unit, or Control.[\/quote]<br \/>\n\u4e0d\u77e5\u9053\u8c01\u8bf4\u5f97\u66f4\u6b63\u786e\u5462\uff1f<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7a81\u7136\u60f3\u5230\u4e00\u4e2a\u95ee\u9898\uff0c\u65e2\u7136asp.net\u63d0\u4f9b\u4e86WebControl\uff0c\u529f\u80fd\u53c8\u90a3\u4e48\u5f3a\u5927\uff0c\u63a5\u53e3\u53c8\u90a3\u4e48\u7edf\u4e00\uff0c\u4e3a\u4ec0\u4e48\u8fd8\u8981\u7528HTMLControl\u5462\uff1f Google\u4e0a\u627e\u4e86\u4e00\u4e0b\uff0c\u4e2d\u6587\u7ed3\u679c\u51e0\u4e4e\u5b8c\u5168\u7edf\u4e00\uff1ahttp:\/\/www.google.com\/search?hl=zh-CN&#038;inlang=zh-CN&#038;newwindow=1&#038;q=htmlcontrol+webcontrol&#038;lr=lang_zh-CN%7Clang_zh-TW [quote]Web\u63a7\u4ef6\u548cHtml\u63a7\u4ef6\u867d\u7136\u597d\u591a\u529f\u80fd\u76f8\u540c\u5e76\u4e14\u957f\u5f97\u5f88\u50cf \u4f46\u662f\u5b83\u4eec\u7684\u5185\u90e8\u5b9e\u73b0\u673a\u5236\u662f\u5b8c\u5168\u4e0d\u4e00\u6837\u7684 Web\u63a7\u4ef6\u8981\u6bd4Html\u63a7\u4ef6\u6267\u884c\u6548\u7387\u8981\u597d 1. \u4f7f\u7528\u8d77\u6765\u4e5f\u76f8\u5f53\u65b9\u4fbf,\u4e3e\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50,\u4f8b\u5982Button\u7684\u751f\u6210: Html\u63a7\u4ef6\u662f\u5c06\u5e9e\u5927\u63a7\u4ef6\u96c6\u5408\u5168\u90e8\u5f04\u5230\u9875\u9762\u4e2d\uff0c\u7528\u5230\u54ea\u4e2a\u529f\u80fd\uff0c\u5c31\u8bbe\u7f6e\u4e00\u4e0b\u5c5e\u6027,\u5982\u4e0b: \u8fd9\u6837\u4f1a\u5360\u7528\u76f8\u5f53\u5927\u7684\u63a7\u4ef6\u8d44\u6e90 Web\u63a7\u4ef6\u662f\u5c06\u96c6\u6210\u5f0f\u7684\u62c6\u89e3\u6210\u5355\u529f\u80fd\u7684\uff1a \u8fd9\u6837\u5c31\u53ef\u4ee5\u8282\u7701\u4e0d\u5fc5\u8981\u7684\u63a7\u4ef6\u6240\u5360\u7528\u7684\u8d44\u6e90\u4e86 2.Web\u63a7\u4ef6\u5177\u6709\u56de\u9001\u529f\u80fd,\u80fd\u591f\u7528ViewState\u7ef4\u6301\u63a7\u4ef6\u7684\u72b6\u6001. Html\u63a7\u4ef6\u5219\u4e0d\u80fd,\u5f53\u70b9\u51fb\u9875\u9762\u7684\u64cd\u4f5c\uff0c\u5176\u72b6\u6001\u5c31\u4f1a\u4e22\u5931. \u53ef\u4ee5\u505a\u8fd9\u6837\u7684\u4e00\u4e2a\u5b9e\u9a8c: I. \u5206\u522b\u5efa\u7acb\u4e24\u4e2a\u6587\u4ef6: a.html b.aspx II.\u5728a.html\u9875\u9762\u4e2d\u52a0Html\u63a7\u4ef6\u7684RadioButton\u548c\u4e00\u4e2abutton\uff0c\u5728b.aspx\u4e2d\u52a0Web\u63a7\u4ef6\u7684adioButton\u548c\u4e00\u4e2abutton III.a.html\u76f4\u63a5\u53cc\u51fb\u6d4f\u89c8\u5668\u8fd0\u884c,b.aspx\u901a\u8fc7IIS\u8fd0\u884c IV.\u5728a.html\u8fd0\u884c\u754c\u9762\u4e2d\uff0c\u9009\u4e2dRadioButton,\u518d\u5355\u51fbButton\u6309\u94ae\uff0c\u4f1a\u53d1\u73b0RadioButton\u4f1a\u53d6\u6d88\u9009\u4e2d(\u4e22\u5931\u5176\u72b6\u6001),\u4f46\u5728b.aspx\u9875\u9762\u6267\u884c\u540c\u6837\u7684\u64cd\u4f5c\uff0cRadioButton\u4e0d\u4f1a\u4e22\u5931\uff0c\u56e0\u4e3aViewState\u7ed9\u5b83\u4fdd\u5b58\u4e86\u72b6\u6001. \u60a8\u53ef\u4ee5\u5728\u8fd0\u884c\u754c\u9762\u70b9\u51fb\u6d4f\u89c8\u5668\u83dc\u5355&#8221;\u67e5\u770b&#8221;->\u201c\u6e90\u6587\u4ef6&#8221;,\u6253\u5f00Html\u4ee3\u7801\u6587\u4ef6\uff0c\u627e\u5230\u52a0\u5bc6\u540e\u7684ViewState,\u7c7b\u4f3c\u4e8e\u4e0b\u9762: \u5176\u5b9eViewState\u5b9e\u73b0\u539f\u7406\u4e5f\u662f\u5c06\u4e00\u4e9b\u4fe1\u606f\u653e\u5230\u9690\u85cf\u7684\u4e00\u4e2a\u63a7\u4ef6\u4e2d\uff0c\u5e76\u4e14asp.net\u751f\u6210\u7684ViewState\u4fe1\u606f \u662f\u5b58\u50a8\u5728\u5ba2\u6237\u7aef\u7684 \u8fd9\u91cc\u8981\u6ce8\u610f\u7684\u4e00\u70b9\u662f\uff1a \u53ea\u6709\u5f53\u683c\u5f0f\u4e3a*.aspx\u6587\u4ef6\uff0c\u5e76\u4e14\u63a7\u4ef6\u5177\u6709\u5c5e\u6027:&#8221;runat=server&#8221;\u65f6\uff0c\u56de\u9001\u529f\u80fd\u624d\u80fd\u6253\u5f00 3. Html\u63a7\u4ef6\u4e0eWeb\u63a7\u4ef6\u6700\u5927\u7684\u533a\u522b\u662f\u5b83\u4eec\u5bf9\u4e8b\u4ef6\u5904\u7406\u7684\u65b9\u6cd5\u4e0d\u540c\u3002\u5bf9\u4e8eHtml\u7a97\u4f53\u63a7\u4ef6\uff0c\u5f53\u5f15\u53d1\u4e00\u4e2a\u4e8b\u4ef6\u65f6\uff0c\u6d4f\u89c8\u5668\u4f1a\u5904\u7406\u5b83\u3002\u4f46\u5bf9\u4e8eWeb\u63a7\u4ef6\uff0c\u4e8b\u4ef6\u4ec5\u7531\u6d4f\u89c8\u5668\u751f\u6210\uff0c\u4f46\u6d4f\u89c8\u5668\u4e0d\u4f1a\u5904\u7406\u5b83\uff0c\u5ba2\u6237\u7aef\u8981\u7ed9\u670d\u52a1\u5668\u53d1\u4e2a\u4fe1\u606f\uff0c\u544a\u8bc9\u670d\u52a1\u5668\u5904\u7406\u4e8b\u4ef6\u3002 \u4e0d\u8fc7\u6709\u4e9b\u4e8b\u4ef6\uff0c\u6bd4\u5982: \u6309\u4e0b\u952e\/\u79fb\u52a8\/\u9f20\u6807\u7b49\u4e8b\u4ef6\uff0cAsp.net\u4e2d\u6ca1\u6709\u8fd9\u4e9b\u4e8b\u4ef6(\u56e0\u4e3a\u8fd9\u4e9b\u4e8b\u4ef6\u5373\u65f6\u6027\u5f3a\uff0c\u670d\u52a1\u5668\u5904\u7406\u5f97\u4e0d\u591f\u53ca\u65f6)\uff0c\u8fd9\u65f6\u5019Html\u63a7\u4ef6\u5c31\u53d1\u6325\u5176\u4f5c\u7528\u4e86\uff0c\u7ed3\u5408Html\u4e8b\u4ef6 \u534f\u52a9\u5b8c\u6210. [\/quote] \u5f80\u540e\u7ffb\u4e86n\u9875\uff0c\u624d\u627e\u5230\u4e00\u6761\u6bd4\u8f83\u8be6\u7ec6\u7684\u82f1\u6587\u8d44\u6599 http:\/\/www.codecomments.com\/archive289-2005-9-607043.html [quote] This can be confusing to new ASP.Net developers. In fact, it is important to distinguish between several different types of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2124","post","type-post","status-publish","format-standard","hentry","category-asp-net"],"_links":{"self":[{"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=\/wp\/v2\/posts\/2124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2124"}],"version-history":[{"count":0,"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=\/wp\/v2\/posts\/2124\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2124"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.hi-alex.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}