2012-06-20 5 views
0

Я только хочу показать свой атрибут title в некоторых случаях. Я не хочу, чтобы он показывал, когда условие не выполняется. Теперь он показывает пустую подсказку. Я не хочу всплывающую подсказку, когда условие терпит неудачу.Как не показать атрибут title в некоторых случаях с бритвой?

Убирал это немного

<tr class=title="@(item.Cancelled ? "Cancelled" : item.Confirmed ? isBlocked? "blocked date": **no title attribute here** :"Confirm needed") "> 

ответ

3

Вы всегда можете выполнить следующую порнографию:

<tr @Html.Raw(item.Cancelled ? "title=\"Cancelled\"" : item.Confirmed ? isBlocked ? "title=\"blocked date\"": "" : "title=\"Confirm needed\"")> 

Но я бы порекомендовал вам писать пользовательский помощник для создания этого td элемента:

@using (Html.Td(item, isBlocked)) 
{ 
    <div>some contents for the td</div> 
} 

примерно:

public static class HtmlExtensions 
{ 
    private class TdElement : IDisposable 
    { 
     private readonly ViewContext _viewContext; 
     private bool _disposed; 

     public TdElement(ViewContext viewContext) 
     { 
      if (viewContext == null) 
      { 
       throw new ArgumentNullException("viewContext"); 
      } 
      _viewContext = viewContext; 
     } 

     public void Dispose() 
     { 
      this.Dispose(true); 
      GC.SuppressFinalize(this); 
     } 

     protected virtual void Dispose(bool disposing) 
     { 
      if (!this._disposed) 
      { 
       _disposed = true; 
       _viewContext.Writer.Write("</td>"); 
      } 
     } 
    } 

    public static IDisposable Td(this HtmlHelper html, ItemViewModel item, bool isBlocked) 
    { 
     var td = new TagBuilder("td"); 
     var title = item.Cancelled 
      ? "Cancelled" 
      : item.Confirmed 
       ? isBlocked 
        ? "blocked date" 
        : "" 
       : "Confirm needed"; 

     if (!string.IsNullOrEmpty(title)) 
     { 
      td.Attributes["title"] = title; 
     } 
     html.ViewContext.Writer.Write(td.ToString(TagRenderMode.StartTag)); 
     var element = new TdElement(html.ViewContext); 
     return element; 
    } 
} 
+2

Спасибо, я выбрал для Raw порнографии. Просто привычка, я думаю. – Liquid

+1

Я привел пример того, как сделать это правильно, но если вы чувствуете себя комфортно с порнографией палочкой с ним. –

+0

Спасибо за правильный пример. В самом деле, это выглядит и чувствует себя менее грязным. – Liquid

Смежные вопросы