دسته بندی ها
15:12 1400/05/11

ارسال نشدن مقدار input به سمت Controller هنگام استفاده از تابع onkeyup

مشخصات سوال کننده :
کاربر : frisat     امتیاز کاربر : ‎−2     رتبه کاربر : 7080
دسته بندی : Asp.net Core جاوا اسکریپت

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3216
پاسخ دهنده : saedbfd 02:10 1400/05/12

مشکل بخاطر استفاده از دستورات جی کوئری یا جاوا اسکریپت نیست. شما پروژتون رو که اجرا می کنید دکمه F12 رو بزنید و در قسمت inspect element مطمئن بشید id و name تگ input شما مقدار یکسان دارن. به تصویر زیر دقت کنید :

استفاده از جی کوئری در core

 

با توجه به اینکه در قسمت asp-for مستقیم Model رو مشخص نکردید احتمالا این مشکل پیش میاد. دستور زیر رو تست کردم کاملا صحیح هست :

 

<form asp-controller="Home" asp-action="test1" method="post">
    <input type="text" name="HaghTaghzea" id="HaghTaghzea" onkeyup="javascript:this.value=itpro(this.value);">
    <button type="submit" class="btn btn-success">ارسال</button>
</form>

 

کدهای جاوا اسکریپت هم همون کدهای خود شماست. (جدا کردن 3 رقم 3 رقم اعداد در تگ input)

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
پاسخ دهنده : frisat 13:32 1400/05/12

اشتباه این بود که من نوع داده ای رو long گذاشته بودم و باید string باشه تا کاما رو قبول کنه

public long HaghTaghzea { get; set; }

اگر بخوام در جدول بصورت نوع long ذخیره بشه چه راه حلی هست ؟

[HttpPost]
public IActionResult submitPersons(Person person)
{
    var proMapped = _mapper.Map<Person>(person);
    _context.Add(proMapped);
    _context.SaveChanges();
    return RedirectToAction("allPerson");
}
<input type="text" onkeyup="javascript:this.value=itpro(this.value);" asp- 
for="@Model.person.HaghTaghzea">

 

ویرایش شده در سه شنبه 12 مرداد 1400 ساعت 17:55:21
به این پاسخ امتیاز بدهید    0
امتیاز: ‎−2 رتبه: 7080
1 نظر
saedbfd : شما میتونید همین مقدار string رو در کنترلر دریافت کنید و با دستور replace ویرگول ها رو حذف کنید و فقط عدد خالی رو نگهداری کنید و در دیتابیس ذخیره کنید.

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 05:56 1400/05/12
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود