これは、runat="server" を使用して html コントロールをレンダリングするコードの一部です。
var sb= new StringBuilder();
sb.AppendLine(" <div class='ItemDiv'>");
sb.AppendLine(" <h2>More Products </h2>");
sb.AppendLine(" <span class='separator'></span> <ul class='ulProducts'>");
foreach (var lead in list)
{
var name = lead.ProductName;
if (name.Length > 17)
{
name = string.Format("{0}...", name.Substring(0, 17));
}
sb.AppendLine(string.Format("<li><img src='{0}' align='absmiddle' alt='{1}'/>
<span class='separator'> </span>
<a href='~/Item/{2}/{1}.aspx' runat='server' // issue is with runat='server'
style='font-size:8pt; text-transform:
capitalize;'>{1}</a></li>",
lead.ProductImagePath, name,lead.Id));
}
sb.AppendLine("</ul> </div>");
ProductsBySame1.GetHtml = sb.ToString(); // ProductsbySame is usercontrol and GetHtml is property of innerHtml of div placed in the usercontrol. That is dynamically populated.
私の出力:
<div id="ctl00_cphMain_ProductsBySame1_ltlProducts"> <div class='ItemDiv'>
<h2>More Products </h2>
<span class='separator'></span> <ul class='ulProducts'>
<li><img src='Uploads/Images/8e4c426aa1464af0b45f43c8c773e8ae.jpg' align='absmiddle' alt='Ceftriaxone Injec...'/> <span class='separator'> </span><a href='~/Item/659/Ceftriaxone Injec....aspx' **runat='server'** style='font-size:8pt; text-transform: capitalize;'>Ceftriaxone Injec...</a> </li>
<li><img src='Uploads/Images/9efa7b61cf9f467393089ca111fc5f51.jpg' align='absmiddle' alt='Clavulanate Potas...'/> <span class='separator'> </span><a href='~/Item/660/Clavulanate Potas....aspx' **runat='server'** style='font-size:8pt; text-transform: capitalize;'>Clavulanate Potas...</a> </li>
</ul> </div>
</div>
上記を参照。実際、私は UrlRewriting.Net モジュールを使用して URL を書き換えています。また、ドキュメントによると、 ~/ で始まるリンクのみが機能します。したがって、~/ は runat='server' でのみ機能するため、URL を構築しています。
最後に私の問題は、レンダリング中に runat='server' が解決されないため、上記の href が機能しないことです。私の使用シナリオに従って、 html のレンダリング中に私を助けてください。
前もって感謝します。