internal static string UrlTemplate(HtmlHelper html)
 {
     return(String.Format(CultureInfo.InvariantCulture,
                          "<a href=\"{0}\">{1}</a>",
                          html.AttributeEncode(html.ViewContext.ViewData.Model),
                          html.Encode(html.ViewContext.ViewData.TemplateInfo.FormattedModelValue)));
 }
Ejemplo n.º 2
0
        internal static MvcHtmlString ValueForHelper(
            HtmlHelper html,
            string name,
            object value,
            string format,
            bool useViewData
            )
        {
            string fullName       = html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
            string attemptedValue = (string)html.GetModelStateValue(fullName, typeof(string));
            string resolvedValue;

            if (attemptedValue != null)
            {
                // case 1: if ModelState has a value then it's already formatted so ignore format string
                resolvedValue = attemptedValue;
            }
            else if (useViewData)
            {
                if (name.Length == 0)
                {
                    // case 2(a): format the value from ModelMetadata for the current model
                    ModelMetadata metadata = ModelMetadata.FromStringExpression(
                        String.Empty,
                        html.ViewContext.ViewData
                        );
                    resolvedValue = html.FormatValue(metadata.Model, format);
                }
                else
                {
                    // case 2(b): format the value from ViewData
                    resolvedValue = html.EvalString(name, format);
                }
            }
            else
            {
                // case 3: format the explicit value from ModelMetadata
                resolvedValue = html.FormatValue(value, format);
            }

            return(MvcHtmlString.Create(html.AttributeEncode(resolvedValue)));
        }
Ejemplo n.º 3
0
 public static MvcHtmlString Id(this HtmlHelper html, string name)
 {
     return(MvcHtmlString.Create(html.AttributeEncode(html.ViewData.TemplateInfo.GetFullHtmlFieldId(name))));
 }