私がやろうとしているのは、ユーザーがレター テンプレートを作成できるレターの管理ページを用意することです。管理者は、レター テンプレートを作成するための html リッチ テキスト エリアと、テキスト エリアにドラッグ アンド ドロップできる側のデータベース フィールドを利用できます。ランタイム中に、データベース フィールドは、クライアントが提供した ID に基づいて実際の値に置き換えられます (差し込み印刷と同様)。私は上記のすべてに精通していますが、データベースフィールドがテキストエリアにドロップされたときに、それらをフィールドとして識別するための何らかの装飾を施した @FirstName のようなものにしたいと考えています。以下の JQuery がそれを行います。
$(function () {
$("ul > li").draggable({
appendTo: "body",
helper: "clone"
});
$("#content").droppable({
drop: function (event, ui) {
createNode(ui.draggable.attr('title'), $(ui.draggable))
//$(ui.draggable).hide();
}
});
});
function createNode(text, origNode) {
tinyMCE.activeEditor.execCommand('mceInsertContent', false, text);
}
ユーザーがレターテンプレートの保存をクリックすると、テキストエリアの下のhtml全体がデータベースに保存されます。そして今、問題は、手紙の実行時に、手紙にあるすべてのデータベースフィールドをモデル/クラスの実際の値に置き換えたいということです。これは私がどうすればよいか分からないものです。HTML をループして、一致するすべてのタグを見つけて値に置き換えるのは嫌です。MVCでこれを行うより良い方法があるかどうかわかりませんか? それとも、私はこれを間違ってやっているだけですか?このレベルの管理で何かを作成するのはこれが初めてです。明確化が必要な場合は、私に知らせてください。意味をなさないかもしれないことを頭から全部捨てたと確信しています:)。事前にご協力いただきありがとうございます。
例:
Hi this letter goes to @FirstName @LastName located at @Address...