ورود

View Full Version : سوال: استفاده از اتریبیوت ِ Remote در یک View با نوع Strongly Typed از یک ViewModel



alibahman47
چهارشنبه 21 تیر 1396, 10:05 صبح
درود ,

در یک View که از ViewModel به صورت زیر استفاده شده :

Click here to view the original image of 672x389px.
http://s8.picofile.com/file/8300292676/jpg1.jpg
یک Attribute از نوع Remote برای فیلد Url جدول Product نوشم که چک کنه اگه Url قبلا موجود بود پیغام مناسب رو نشون بده ,


Click here to view the original image of 941x134px.
http://s9.picofile.com/file/8300293300/jpg3.jpg

در حالت نرمال اگه یک view برای جدول Tbl_Product اسکفلد کنم این اتریبیوت بدرستی کار میکنه .
اما در ViewModel این Attribute کار نمیده ,


علت رو برسی کردم دیدم موقع ورود مقدار در TextBox مقدار null رو به اکشن مربوطش میفرسته

Click here to view the original image of 850x450px.
http://s8.picofile.com/file/8300294492/jpg4.jpg
و دلیلش هم اینکه که این Attribute از روی name مربوط به TextBox مقدار رو میخونه و الان چون من دارم از ViewModel در صفحه استفاده میکنم name بصورت Product.Url درمیاد و این اتریبیوت هم نمیتونه مقدار رو بخونه .

Click here to view the original image of 1145x747px.
http://s9.picofile.com/file/8300294950/jpg5.jpg


امیداروم منظور رو رسونده باشم.
بنظرتون راه حل این کار چیه ؟

mmbguide
سه شنبه 21 تیر 1401, 23:06 عصر
سلام دوستان

الان من هم این مشکل را دارم و مقدار وارد شده در input به Action ارسال نمیشه. لطفا دوستان راهنمایی کنند.

تشکر

mmbguide
چهارشنبه 22 تیر 1401, 20:41 عصر
سلام

در لینک زیر یک راهنمایی کرده:
https://stackoverflow.com/questions/18112985/remoteattribute-is-not-passing-parameter-to-action

این روش را هم انجام دادم باز هم مقدار دریافتی خالی هستش. دربدنه متد مقدار QueryString را که نگاه میکنم میبینم مقدار به درستی ارسال شده:
153898

ولی چرا در پارامتر متد وجود نداره؟ البته فعلا باید از مقدار QueryString بهره ببرم. لطفا راهنمایی کنید.

تشکر

mmbguide
چهارشنبه 22 تیر 1401, 20:51 عصر
متد را بصورت زیر اصلاح کردم:

public IActionResult IsExistUserName()
{
var queryString = HttpContext.Request.QueryString;
if (!queryString.HasValue)
{
return Json(true);
}


//درخواست ارسال شده مطابق زیر است و مقدار وارد شده باید از آن جدا شود
//{?RegisterViewModel.fldUserName=solution}
string username = queryString.Value.Split("=")[1].ToString();
if (db.tblUser.IsExistUserName(username))
{
return Json("Duplicat Username...!");
}
else
{
return Json(true);
}
}