2016-04-15 1 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でそれを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

ブロックの外側にはセミコロンが付いています。あなたはそれを取り除く理由と方法を知っていますか?あなたの2番目のオプションは、最終的に '@ Html.Raw(description)'で '@'ブロック内で正しく動作するように見えます。 – Madmenyo

+0

';'を使用する必要はありません。 @ Html.Rawの後に(説明) –

+1

私はちょっとlol'd、ありがとう:D – Madmenyo

1

表示方法をコードに組み込んでいるため、問題が発生しています。コードブロックの外にHtml.Rawを置くべきです。 MvcHtmlStringを返します@ブロック内のHTMLを使用して

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

@Html.Raw(description) 
+0

2つの質問: 'Html.Raw()'がセミコロンをHTMLの後ろに置いているので、セミコロンを取り除くにはどうすればよいですか?なぜブロック外に出る必要があるのでしょうか? '@Html.Raw(variable)'は@ {Html.Raw(variable)}と全く同じですが、少なくともブロックの外側に何かを印刷します。 – Madmenyo

+1

1.セミコロンについて。たぶん、あなたは@ Html.Raw(変数)をタイプしています。だからこそ、セミコロンを持っています。最後にセミコロンを付けずに入力してください。 Html.RawはIHtmlStringを返すメソッドなので、@ {Html.Raw(variable)}は何も出力しません。コードブロックに入っているときにメソッドが正しい文字列を返しますが、それを印刷していません。値を出力するには、ここで説明するメソッドを使用する必要があります。http://www.asp.net/web-pages/overview/getting-started/introducing-razor-syntax-c – ssimeonov

関連する問題