![](/img/trans.png)
[英]how to correctly pass a json object to flask server using jquery ajax
[英]How to pass Server.HtmlEncode in ajax jquery method
我正在使用Server.HtmlEncode
編碼字符串,因為它不支持撇號
Example-"Capacit's Infraprojects Limited" changes to
"Capacit&#39;e" Infraprojects Limited <br>
So I used Server.HtmlEncode to resolve it
<a onclick="setOfferDocument('@Server.HtmlEncode(documents.CompanyName)')" class="link-download" href="javascript:void(0)"
>@Server.HtmlDecode(documents.CompanyName)</a>
現在我有一個下拉列表,單擊公司名稱可以在其中獲取數據,為此我使用了ajax函數
落下-
<select id="single-appendSpeaker" onchange="GetSelectedOfferData()" class="select2" style="width:;">
<option value="All">All</option>
</select>
Ajax函數我從哪里獲得公司名稱
function GetSelectedOfferData() {
debugger;
var companyName = $("#single-appendSpeaker").val();
if (companyName == "All") {
$.ajax({
type: "POST",
dataType: "json",
url: "/OfferDocument/getAllOfferDocument",
data: {},
success: function (result) {
var doc = '';
$.each(result, function (i, val) {
doc = doc + '<li><a onclick="setOfferDocument(\'' + val.companyName + '\')" class="link-download" href="javascript:void(0)" >' + val.companyName + '</a><br /></li>'
});
$("#ProspectUL").empty();
$("#ProspectUL").append(doc);
}
});
}
else {
var data = '';
data = data + '<li><a onclick="setOfferDocument(\'' + companyName + '\')" class="link-download" href="javascript:void(0)" >' + companyName + '</a><br /></li>'
$("#ProspectUL").empty();
$("#ProspectUL").append(data);
}
}
現在,由於名稱不匹配,我沒有得到該值,為此,我需要對該值進行編碼
例如-Capacit's Infraprojects Limited改為Capacit&e“ Infraprojects Limited
然后只有它會匹配,我會得到數據...
我試過了
doc = doc + '<li><a onclick="setOfferDocument(\'' + @Server.HtmlEncode(val.companyName) + '\')" class="link-download" href="javascript:void(0)" >' +@Server.HtmlEncode(val.companyName) + '</a><br /></li>'
});
無法運作
也許您可以使用正則表達式替換'eq:
var regexp = new RegExp(/'/g);
var s = "Capacit's";
console.log(s.replace(regexp, "'e"));
首先,您需要使用JavaScriptStringEncode
因此請替換
<a onclick="setOfferDocument('@Server.HtmlEncode(documents.CompanyName)')"...
有:
<a onclick="setOfferDocument('@Html.Raw(System.Web.HttpUtility.JavaScriptStringEncode(documents.CompanyName))')"
另請注意@Html.Raw(...)
的用法。 這將防止MVC在呈現輸出時應用html編碼。
其次,為了修復構建li項目的代碼,我建議使用如下方法:
$('<a class="link-download" href="javascript:void(0)">').click(function(){ setOfferDocument("" + companyName)} );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.