私は、ボタンをクリックすると、TextArea内のデータをコントローラに送信するmvcプログラムで作業しました。通常、私のコードは期待どおりに機能しましたが、TextArea内のデータがhtmlベースのデータで構成されている場合には当てはまりませんでした。送信データがhtmlデータのときにajaxリクエストを送信
HTMLコード:
<textarea id="bodyInfo"> </textarea>
<button onclick="Submit()" id="submitInfo">Create Notification</button>
ajax:
function Submit() {
$.ajax({
url: '@Url.Action("GetResults", "notification")',
type: 'GET',
data: { body: $('#bodyInfo').val()),
cache: 'false',
dataType: 'html',
success: function (result) {
$('#resultsTblInfo').html(result);
}
});
return false;
}
のTextAreaデータのサンプル例:
<table style="width:100%">
<tbody>
<tr>
<td class="ellipses-title" style="color:#22557f;font-size:15px;font-weight:bold;margin-bottom:10px;margin-top:7px;border-right:1px solid #BFF1FD;text-align:right;padding-right:15px;"> The New Admin is Coming</td>
<td class="ellipses-text" style="padding-left:15px;" valign="center">Hello<br> Hello2</a>.
</td>
</tr>
</tbody>
</table>
上で見た何のTextAreaをHTMLデータが、生のテキストではなかったが、それはHTMLデータだったときに失敗したときに動作します。
私は
"encodeURIComponentで($( '#bodyInfo')。valを())" の代わりに "$( '#bodyInfo')。valを()"
を使用して、この作品を作ることができましたコントローラ側では、実行中
"body = HttpUtility.UrlDecode(body)";
同じことを達成するためのより良い選択肢はありますか? encodeURIComponentをその意図した性質に対して使用していますか?どうして$( '#bodyInfo').html値をajaxに渡すとval()が動作しないのですか?この質問が重複している場合は、誰かが私にリンクを提供することができれば感謝します。(私はGoogleを使って検索しましたが、満足できる答えが見つかりませんでした)