Ich arbeitete an einem MVC-Programm, wo auf einen Klick auf eine Schaltfläche senden ich Daten in einem TextArea an den Controller. Normalerweise funktionierte mein Code wie erwartet, aber das war nicht der Fall, wenn die Daten in der TextArea aus HTML-basierten Daten bestanden.Senden einer AJAX-Anfrage, wenn Daten gesendet HTML-Daten
Html-Code:
<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;
}
Musterbeispiel TextArea- Daten:
<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>
Was wurde oben funktionieren würde, zu sehen, wenn TextArea- nicht HTML-Daten war aber Rohtext aber würde scheitern, wenn es HTML-Daten sind .
konnte ich diese Arbeit machen, indem
"encodeURIComponent ($ ('# bodyInfo'). Val())" anstelle von "$ ('# bodyInfo'). Val()"
In der Controller-Seite, tun
"body = HttpUtility.UrlDecode (Körper)";
Gibt es bessere Alternativen, um dasselbe zu erreichen? Verwende ich encodeURIComponent gegen seine beabsichtigte Natur? Warum funktioniert $ ('# bodyInfo') .val() nicht, wenn HTML-Werte über Ajax übergeben werden? Wenn diese Frage ein Duplikat ist, würde ich mich freuen, wenn mir jemand einen Link zur Verfügung stellen könnte (ich habe versucht, durch google zu suchen, aber keine befriedigende Antwort gefunden)