0

Razor と Microsoft の TextArea 用 HTML ヘルパー ( ) を使用して、View 内のコメントの List コレクションから取得しようとしています@Html.TextAreaFor。単一のコメントは簡単に入力できますが、コメントのリスト コレクション全体をテキストエリアに追加するにはどうすればよいですか? 単一のコメントを表示するために使用するものの例を次に示します。

@Html.TextAreaFor(x => x.AuditDoc.PrivateComment, 0, 0, false)

これで問題ありませんが、同じテキストエリアに 2 番目、3 番目、4 番目のコメントを追加するにはどうすればよいでしょうか? リスト コレクション全体をその html.textarea ヘルパーにバインドする方法はありますか? できれば、html ヘルパーを使用して Razor でこれを行いたいと思います。それが不可能な場合は、Jquery でそれを行う方法についてアドバイスをいただければ幸いです。注: コメントはモデルにバインドする必要はありません。したがって、@Html.TextAreaFor の代わりに @Html.TextArea を使用するだけで問題ありません。コメントの配列は、厳密に表示用です。したがって、複数選択などの複雑さはありません。

4

2 に答える 2

1

コントローラで連結を実行し、それを読み取ったビューに渡してテキスト領域に設定することができます。

コントローラロジック:

  var comments = db.Comments.ToList();
        string concatComments = string.Empty;
        foreach (var item in comments)
        {
            concatComments = concatComments + item.Title;
        }
        ViewData["Concat"] = concatComments.ToString();

次に、ビューでこれを行いました:

@Html.TextArea("Comments", ViewData["Concat"].ToString())

明らかに私のコードはそれらすべてをかなり醜く返しますが、あなたは次のことができます:

concatComments = concatComments + " " + item.Title;
于 2012-07-12T03:42:26.050 に答える
0

あなたが試すことができます、

  1. すべてのコメントを含むビューモデルに個別のプロパティを設定し、それをテキスト領域にバインドします。

  2. そのコレクションプロパティのエディターテンプレートには、はるかにクリーンなソリューションがあります。

于 2012-07-12T03:44:29.823 に答える