В приложении MVC5 я пытаюсь добавить всплывающие подсказки Bootstrap к элементу ввода.Я сделал это, определив пользовательский вспомогательный класс:
public static class CustomHtmlHelpers
{
public static string DescriptionFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
var description = metadata.Description;
return string.IsNullOrWhiteSpace(description) ? "" : description;
}
}
И добавив атрибут Description к моей модели:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:#.#}")]
[Display(Name = "Total Annual Spend", Description = "Total annual cost of this plan.")]
public decimal AnnualSpend { get; set; }
Сначала я убедился, что могу использовать свой вспомогательный класс для правильного извлечениязначение описания, создавая div с помощью @ Html.DescriptionFor ();он отображается правильно.
Теперь я пытаюсь добавить всплывающую подсказку:
<div class="col-md-2">
@Html.LabelFor(model => model.AnnualSpend, htmlAttributes: new { @class = "control-label" })
@Html.EditorFor(model => model.AnnualSpend, new { htmlAttributes = new { @class = "form-control", rel="txtTooltip", data_toggle = "tooltip", data_placement = "bottom", title = Html.DescriptionFor(model => model.AnnualSpend) } })
@Html.ValidationMessageFor(model => model.AnnualSpend, "", new { @class = "text-danger" })
</div>
И скрипт:
$(document).ready(function () {
$('input[rel="txtTooltip"]').tooltip();
});
Сценарий запускается, Я вижу этов консоли , но подсказка не отображается.Это, вероятно, не имеет значения, но форма размещена в частичном представлении.
Вот представленный HTML:
<div class="col-md-2">
<label class="control-label" for="model_db94d00a-edbb-47d7-a153-d90b47d35e13__AnnualSpend">Total Annual Spend</label>
<input class="form-control text-box single-line" data-placement="bottom" data-toggle="tooltip" data-val="true" data-val-number="The field Total Annual Spend must be a number." data-val-required="The Total Annual Spend field is required." id="model_db94d00a-edbb-47d7-a153-d90b47d35e13__AnnualSpend" name="model[db94d00a-edbb-47d7-a153-d90b47d35e13].AnnualSpend" rel="txtTooltip" title="" type="text" value="" data-original-title="Total annual cost of this plan.">
<span class="field-validation-valid text-danger" data-valmsg-for="model[db94d00a-edbb-47d7-a153-d90b47d35e13].AnnualSpend" data-valmsg-replace="true"></span>
</div>
При наведении подсказка добавляется.Я попытался удалить метку поля, но подсказка все еще не отображалась.
Почему не отображается?Я просмотрел ряд других постов здесь, не найдя ответа.