Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. @Html.AccessibleValidationMessageFor(m => m.DeliveryMethod)
  2. @foreach (var deliveryMethod in Model.GetDeliveryMethodsOrdered())
  3. {
  4. @Html.AccessibleRadioButtonFor(m => m.DeliveryMethod, deliveryMethod.Id, new { id = string.Format("DeliveryMethod_{0}", deliveryMethod.Id) })
  5. <label for="DeliveryMethod_@deliveryMethod.Id">@deliveryMethod.Description</label>
  6. }
  7.  
  8. public static IHtmlString AccessibleRadioButtonFor<TModel, TProperty>(this HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression, object values, object htmlAttributes = null)
  9. {
  10. ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
  11.  
  12.  
  13.  
  14. var fieldName = ExpressionHelper.GetExpressionText(expression);
  15. var fullBindingName = html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(fieldName);
  16. var validationAttributes = html.GetUnobtrusiveValidationAttributes(fullBindingName, metadata);
  17. if (!html.ViewData.ModelState.IsValidField(fullBindingName))
  18. {
  19. if (!validationAttributes.ContainsKey("aria-describedby"))
  20. {
  21. validationAttributes.Add("aria-describedby", fullBindingName.ToLower() + "-valMsg");
  22. validationAttributes.Add("aria-invalid", "true");
  23. }
  24. }
  25.  
  26. RouteValueDictionary routeValues = new RouteValueDictionary(htmlAttributes);
  27. if (routeValues != null)
  28. {
  29. foreach (var attribute in validationAttributes)
  30. {
  31. routeValues.Add(attribute.Key, attribute.Value);
  32. }
  33. return html.RadioButtonFor(expression, values, routeValues);
  34. }
  35. return html.RadioButtonFor(expression, values, validationAttributes);
  36. }
  37.  
  38. [Required]
  39. [Display(Name = "Delivery Method")]
  40. public int? DeliveryMethod { get; set; }
  41.  
  42. <input aria-describedby="deliverymethod-valMsg" aria-invalid="true"
  43. class="input-validation-error" data-val="true" data-val-number="The field Delivery Method must be a number."
  44. data-val-required="The Delivery Method field is required." id="DeliveryMethod_-1"
  45. name="DeliveryMethod" type="radio" value="-1">
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement