2016-04-15 98 views
2

是的,有很多像這樣的問題,但奇怪的是沒有答案似乎爲我工作。在視圖中顯示字符串?

我在我的模型中有一個描述字段,我想在某些視圖中截斷,所以截斷我模型中某個元素的不同上下文對我來說似乎過分了。

 @{ 
      string description = item.Description; 
      if (description.Length > 10) 
      { 
       description = description.Substring(0, 10) + "..."; 
      } 
      //Using HtmlString 
      var s = new HtmlString(description); 
      s; 
      //Using Html.Raw 
      Html.Raw(description); 
      //Using Html.Display 
      Html.Display(description); 
     } 

無論我嘗試它,都會導致錯誤或根本不顯示任何內容。如果我在聲明之後放置斷點,我的字符串看起來就像我想要的那樣,我只需要在我的<td>元素中顯示它。

+0

只需添加@試試這個:@ {字符串描述= 「你的字符串」;} @ Html.Display(介紹) –

+0

當然,只是張貼在此之後我發現'WriteLiteral',這似乎工作。我仍然不知道爲什麼'HtmlString'給出錯誤,而'Html.Raw'什麼也不顯示。 – Madmenyo

+0

@RenanAraújo只顯示分號。您將「Html.Display」方法放在塊之外的任何特定原因? – Madmenyo

回答

3

使用HTML裏面@塊將返回MvcHtmlString但你不能在你的HTML priting它。

@{ 
    string description = item.Description; 
    if (description.Length > 10) 
    { 
     description = description.Substring(0, 10) + "..."; 
    } 

    Html.Raw(description); // Doesn't print in html. You are returning to nothing 
    // var myStr = Html.Raw(description); 
} 

@Html.Raw(description) // Print in html 

或者你可以前Html.Raw(description)

@{ 
    string description = item.Description; 
    if (description.Length > 10) 
    { 
     description = description.Substring(0, 10) + "..."; 
    } 

    Html.Raw(description); // Doesn't print in html. You are returning to nothing 
    // var myStr = Html.Raw(description); 

    @Html.Raw(description) // Print in html 
} 
+0

在塊之外它用廣告分號。你知道爲什麼以及如何擺脫它嗎?你的第二個選項似乎可以正常工作,在@ @ Html.Raw(description)'的'@'塊內。 – Madmenyo

+0

你不需要使用';'後@ Html.Raw(描述) –

+1

我笑了一下,謝謝:D – Madmenyo

1

你在你的代碼中包含了顯示方法,這就是爲什麼你有這個問題。你應該把Html.Raw放在代碼塊之外。

你的代碼應該是這個樣子:

@{ 
    string description = "sdasdasdasdasdas dasd asdasd asd"; 
    if (description.Length > 10) 
    { 
     description = description.Substring(0, 10) + "..."; 
    } 
} 

@Html.Raw(description) 
+0

兩個問題:自從'Html.Raw()'在HTML中放置一個分號後,我該如何擺脫分號。爲什麼這需要走出這個街區?在我看來,@ Html.Raw(變量)與@ {Html.Raw(變量)}完全一樣,但它至少可以在塊之外打印某些內容。 – Madmenyo

+1

1.關於分號。也許你正在輸入@ Html.Raw(變量);這就是爲什麼tou有分號的原因。在末尾沒有分號鍵入它。像這樣@ Html.Raw(變量)2. @ {Html.Raw(變量)}不會打印任何東西,因爲Html.Raw是一種返回IHtmlString的方法,所以當你在代碼塊中時,該方法返回正確的字符串,但是你不打印它。爲了打印一個值,你應該使用這裏描述的方法http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-c – ssimeonov