hastiam
شنبه 27 دی 1393, 08:27 صبح
سلام دوستان
من یک آرایه ای از نوع Guid دارم که میخوام با ajax این آرایه رو بخونم و سمت سرور ارسال کنم تا عملیاتی رو آن انجام شود وقتی آرایه فقط یک مقدار داشته باشد action درست عمل می کند اما وقتی دو یا بیشتر می شود پارامتر ورودی یعنی ids ،هیچ مقداری رو نمی گیره یعنی null است، برای حل این مشکل اومدم آرایه رو به جای Guid از نوع string گرفتم که در این صورت هم کل Guid ها رو در ایندکس اول آرایه قرار میده یعنی یک رشته بسیار طولانی ایجاد می کنه مثل
[0] = "264492c8-3882-4fa4-8df9-dd165668a2d2,e023ab7e-8156-42f5-8826-942317a66594,281002f3-b15c-4b15-b570-88d92824eacc,8b4894e0-cc84-4b89-bad6-0f2fba5ac426"
که اگه تعداد Guidهام بیشتر از 10 تا بشه اونوقت باز هم چیزی نشون نمیده اگه هر کدوم از این Guidها رو در ایندکس های جدا قرار بده مشکلم حل میشه ولی نمیدونم چرا همه رو تو یک ایندکس قرار میده؟!!!!
تابع ajax ای که نوشتم به صورت زیر است :
function deleteMessages(){
var url = '@Url.Action("Delete", new { Controller = "Message" })';
var selected=[];
var CHKcount=0;
$('input:checked').each(function () {
CHKcount++;
selected.push($(this).val());
});
if(CHKcount > 0){
$.ajax({
url: url,
data: "ids=" + selected,
dataType: 'json',
type: 'post',
async: false,
success: function (info) {
.....
},
error: function (e, x) {
alert(status.x);
}
});
}
else
{
alert("لطفا يک یا چند سطر را انتخاب کنيد");
}
}
و مقدار ورودی در actionام رو هم که به صورت زیر نوشتم :
public JsonResult Delete(Guid[] ids)
{
try
{
.....
}
catch
{
.....
}
return Json("");
}
به طور خلاصه برنامه بالا رو توضیح میدم : در فرمم بیشتر از 100 checkbox دارم که هر کدوم از این چک باکسها یک مقداری از نوع Guid دارند گفتم اگه هر کدوم از این چک باکسها انتخاب شد مقدار اون رو تو آرایه ای به نام selected قرار بده و به عنوان پارامتر ورودی، سمت سرور ارسال کن ....
من یک آرایه ای از نوع Guid دارم که میخوام با ajax این آرایه رو بخونم و سمت سرور ارسال کنم تا عملیاتی رو آن انجام شود وقتی آرایه فقط یک مقدار داشته باشد action درست عمل می کند اما وقتی دو یا بیشتر می شود پارامتر ورودی یعنی ids ،هیچ مقداری رو نمی گیره یعنی null است، برای حل این مشکل اومدم آرایه رو به جای Guid از نوع string گرفتم که در این صورت هم کل Guid ها رو در ایندکس اول آرایه قرار میده یعنی یک رشته بسیار طولانی ایجاد می کنه مثل
[0] = "264492c8-3882-4fa4-8df9-dd165668a2d2,e023ab7e-8156-42f5-8826-942317a66594,281002f3-b15c-4b15-b570-88d92824eacc,8b4894e0-cc84-4b89-bad6-0f2fba5ac426"
که اگه تعداد Guidهام بیشتر از 10 تا بشه اونوقت باز هم چیزی نشون نمیده اگه هر کدوم از این Guidها رو در ایندکس های جدا قرار بده مشکلم حل میشه ولی نمیدونم چرا همه رو تو یک ایندکس قرار میده؟!!!!
تابع ajax ای که نوشتم به صورت زیر است :
function deleteMessages(){
var url = '@Url.Action("Delete", new { Controller = "Message" })';
var selected=[];
var CHKcount=0;
$('input:checked').each(function () {
CHKcount++;
selected.push($(this).val());
});
if(CHKcount > 0){
$.ajax({
url: url,
data: "ids=" + selected,
dataType: 'json',
type: 'post',
async: false,
success: function (info) {
.....
},
error: function (e, x) {
alert(status.x);
}
});
}
else
{
alert("لطفا يک یا چند سطر را انتخاب کنيد");
}
}
و مقدار ورودی در actionام رو هم که به صورت زیر نوشتم :
public JsonResult Delete(Guid[] ids)
{
try
{
.....
}
catch
{
.....
}
return Json("");
}
به طور خلاصه برنامه بالا رو توضیح میدم : در فرمم بیشتر از 100 checkbox دارم که هر کدوم از این چک باکسها یک مقداری از نوع Guid دارند گفتم اگه هر کدوم از این چک باکسها انتخاب شد مقدار اون رو تو آرایه ای به نام selected قرار بده و به عنوان پارامتر ورودی، سمت سرور ارسال کن ....