1

コンマで区切られたビューで返される文字列配列がありました。

@Html.DisplayFor(m => name.studentName) <span>, </span>}

私はこの方法を使用していますが、最後の文字列もコンマで終了します。これを回避する方法を知りたいですか?

4

3 に答える 3

2

studentNameモデルに学生のコレクションがあり、それぞれが表示したいプロパティを持っていると仮定します。

public IEnumerable<Student> Students { get; set; }

ビュー内では、このコレクションをループして、各学生の名前を個別に表示しています。

ループする代わりに、次のことができます。

@Html.Raw(
    string.Join(
        "<span>,<span>",
        Model.Students.Select(x => Html.Encode(x.studentName))
    )
)

またはさらに良いことに、このロジックを再利用可能なカスタム HTML ヘルパーに外部化します。

public static class HtmlExtensions
{
    public static IHtmlString FormatStudentNames(this HtmlHelper htmlHelper, IEnumerable<Student> students)
    {
        return new HtmlString(
            string.Join(
                "<span>,<span>",
                students.Select(x => Html.Encode(x.studentName))
            )
        );
    }
}

次に、ビュー内でこのヘルパーを呼び出すだけです。

@Html.FormatStudentNames(Model.Students)

foreach や作成中のループを記述する必要はなくなりました。

于 2012-07-02T08:35:23.663 に答える
1

試す

@string.Join(",", name.studentName);

MSDN の string.Joinをご覧ください。

于 2012-07-02T08:33:10.643 に答える