ASP.NET Mobile ControlでFormにutn属性をつける
DoCoMoの携帯電話の端末IDを取得するには、formやaタグにutnという属性をつける必要がある
(http://www.limy.org/program/mobile/uid.html)
しかし、Mobile ControlのFormはutn属性の出力に対応していないので、これを出力できるCHTML用のDevice Adapterを作ってみる
public class CHTMLUtnFormAdapter :ChtmlFormAdapter
{
public override void Render(HtmlMobileTextWriter writer)
{
if(base.Control.CustomAttributes["utn"] == null)
{
base.Render(writer);
return;
}try
{
StringBuilder sb = new StringBuilder ();StringWriter swr = new StringWriter (sb);
HtmlMobileTextWriter hwr = (HtmlMobileTextWriter)
writer.GetType().
GetConstructor(new Type[]{writer.GetType(),typeof(MobileCapabilities)}).
Invoke(new object[]{swr,HttpContext.Current.Request.Browser});base.Render (hwr);
string html = sb.ToString ();