2

プログラムのテキストエリアでjEditableプラグインを使用しています。私がやりたいのは、テキスト領域をクリックしたときに、次のようなものを入力したいことです。最初にこれを行うこの2番目を行うこの3番目を行う。

送信するとき、jEditableに現在のテキストエリアと同じフォーマットを維持させたいのですが、テキストエリアをクリックして再度編集すると、次のように表示されます。最初に
これを行う2番目
に行うこの3番目に行う。

テキストエリアをもう一度クリックして編集し、HTMLではなくユーザーフレンドリーなテキストを表示できるようにしたいのですが、フォーマットをそのままにしておく必要があります。

以下は私のJavaScript、ビュー、コントローラーです。どんな助けでも素晴らしいでしょう!

Javascript:

$(".textarea").editable("/ShoppingList/UpdateNotesReminders",
{
     type      : 'textarea',
     rows      : 7,
     columns   : 15,
     cancel    : 'Cancel',
     submit    : 'Save',
     method: 'POST',
     placeholder     : 'No Notes have been entered',
     callback: function(value, settings) { 
    var retval = value.replace(/\n/gi, "<br>"); 
    $(this).html(retval);
}
});

アクション:

//This action is called when save button is clicked after editing notes and reminders.
        [ValidateInput(false)]
        public string UpdateNotesReminders(string id, string value)
        {
            HttpCookie notesRemindersCookie = new HttpCookie("notesRemindersCookie");
            notesRemindersCookie.Value = value.Replace("<br>", "%0a");
            notesRemindersCookie.Expires = DateTime.Now.AddDays(1);

            this.ControllerContext.HttpContext.Response.Cookies.Add(notesRemindersCookie);
            return value;
        }

意見:

<div class="textarea dynform" id="NotesReminders">@Html.Raw(Model.NotesReminders)</div> 
4

1 に答える 1

0

あなたの投稿は、あなたが表示しようとしている HTML から取り除かれていると思います...

しかし、あなたの問題の解決策は、ユーザーコンテンツを HTMLEncode/Decode することだと思います。

于 2012-10-03T04:29:52.037 に答える