เราจึงต้องใช้ฟังก์ชัน encodeURI() ที่ฝั่ง client และ HttpContext.Server.UrlDecode() บนฝั่ง server ทำงานร่วมกันเพื่อให้การส่งค่าเเละรับค่าได้ character set ที่ถูกต้อง
สรุปคือ ที่หน้าจอบนเครื่อง client ใช้ javascript เพื่อปั้นข้อมูล เเล้วส่งข้อมูลไม่ว่า เเบบ get หรือแบบ post ข้อมูลเหล่านั้นไปยัง Action บน Server
ที่ client
โค้ด: เลือกทั้งหมด
<script type="text/javascript">
function popup_subscribe(evt) {
{
evt = evt || window.event;
var target = evt.target || evt.srcElement;
var lstParamStr = "";
$(target).closest('tr').find("input[id^='lstParamStr']").each(function () {
if (lstParamStr == "") {
lstParamStr += $(this).attr("id") + ":" + $(this).attr("value");
}
else {
lstParamStr += "[split]" + $(this).attr("id") + ":" + $(this).attr("value");
}
});
var encodedlstParamStr = encodeURI(lstParamStr);
var popUpWindow = window.open('@Url.Action("PopupSubscribe", "Subscription")? lstParamStr=' + encodedlstParamStr , "dataitem", "toolbar=no,menubar=no,location=yes,scrollbars=yes,height=500,width=800,resizable=yes");
}
</script>
ที่ c# code behind
โค้ด: เลือกทั้งหมด
public class SubscriptionController : Controller
{
public ActionResult PopupSubscribe(String lstParamStr)
{
if (lstParamStr != null)
{
decodedParam = HttpContext.Server.UrlDecode(lstParamStr);
}
return View();
}
}