public static MvcForm BeginForm(this HtmlHelper h, VMActionLink va)
 {
     if (va == null || va.Disabled)
         return null;
     var rvd = new RouteValueDictionary();
     foreach (var q in va.Params.Keys)
         rvd.Add(q, va.Params[q]);
     return h.BeginForm(rvd);
 }
 public static string ActionLink(this UrlHelper u, VMActionLink va)
 {
     if (va == null) return "";
     if (va.Disabled)
         return null;
     else
     {
         var rvd = new RouteValueDictionary();
         foreach (var q in va.Params.Keys)
             rvd.Add(q, va.Params[q]);
         return u.RouteUrl(rvd);
     }
 }
 public static string ActionLink(this HtmlHelper h, VMActionLink va)
 {
     if (va == null) return "";
     if (va.Disabled)
         return h.Encode(va.Description);
     else
     {
         var rvd = new RouteValueDictionary();
         foreach (var q in va.Params.Keys)
             rvd.Add(q, va.Params[q]);
         return h.ActionLink(
             va.Description??"<< ? >>"
             , va.Params["action"].ToString()
             , rvd
             ).ToString();
     }
 }
 public static string SubmitButton(this HtmlHelper h, VMActionLink va)
 {
     return @"<button type=""submit"" >" + h.Encode(va.Description) + "</button>";
 }