2012-05-15 3 views
3

Я хочу добавить больше классов в таблицу в mvc3 C#.Несколько классов html с C#

теперь у меня есть это:

<tr [email protected](item.cancelled ? "cancelled" : "")> 

Можно добавить дополнительный класс здесь, например:

<tr class= "cancelled added"> 
+0

MVC и C# не имеют к этому никакого отношения, это просто связанный с HTML/CSS q uestion. AFAIK, вы не можете иметь несколько классов в HTML-элементе. –

+0

http://webdesign.about.com/od/css/qt/tipcssmulticlas.htm –

+0

@ThomasLevesque Да, вы можете, я делаю это все время. Прочтите ссылку от Oskar – Undefined

ответ

4
<tr class="@(item.cancelled ? "cancelled" : "") added"> 
+0

Спасибо. Это сработало. –

+0

Я рад, что смог помочь :) –

1

Лучший способ использовать это так:

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

like this: 

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

Думаю, я предпочитаю ответ Чака. Это путь короче и проще в использовании. Но спасибо за вашу работу. –

+0

Действительно, ответ Чака работает лучше для вас здесь, если вы планируете добавлять только один атрибут. это может затянуться, если вам нужно использовать множество атрибутов – Liquid

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