3

現在、トランケートとテキストエディタを別の方法で使用しています。そして、両方とも正常に機能していますが、私はこの問題に直面しています。テキストエディタ内のテキストを切り捨てたい。T_TIm

はこの方法で切り捨てを使用して機能しています

@helper Truncate(string input, int length)
    {
    if (input.Length <= length)
    {
        @input
    }
    else
    {
        @input.Substring(0, length)<text>...</text>
    }
}


@foreach (var item in Model)
{       
        <div>
            @Truncate(item.DetailDescription, 400)
        </div>
}



この方法でテキストエディタを呼び出すように生で宣言し、それも正常に機能します

@html.Raw(item.DetailDescription)


問題:どうすれば2つを1つの関数に組み合わせることができますか?これも可能ですかT_T

4

2 に答える 2

6

ビジネス ロジックをモデル内に配置することは、常に優れています。

別のプロパティ ' ' を追加して、モデル自体でこれを行っていたでしょうTruncatedDescription

  public string TruncatedDescription
    {
        get
        {
            return this.DetailDescription.Length > 400 ? this.DetailDescription.Substring(0, 400) + "..." : this.DetailDescription;
        }
    }

したがって、これをビューで直接使用できます

@foreach (var item in Model)
{       
        <div>
             item.TruncatedDescription
        </div>
}

この方法に従っている場合、これは HTML エンコードされないitem.TruncatedDescriptionため、 の助けを借りずにテキスト エディターで使用できます。html.Row

于 2013-02-13T06:45:37.240 に答える
2

私は前にこのようなことをしたことがあります。私はこのようにしました。

@helper Truncate(string input, int length)
 {
   if (input.Length <= length) {
   @Html.Raw(input)
    } else {
    var thisString = input.Substring(0, length);
    @Html.Raw(thisString)
            }
 }

切り捨てヘルパー内で生を組み合わせてから、この方法で切り捨てを呼び出します

@Truncate(item.DetailDescription, 400)
于 2013-02-13T07:06:52.670 に答える