سلام
من تمامی مراحل اعمال سیگنال آر رو با توجه به آموزشی که در همین سایت هست انجام دادم به این صورت که یک نامه ای را برای یک نفر ارسال می کنم و دریافت کننده هم نامه را دریافت می کند حال با استفاده از سیگنال آر قصد دارم که به محض ارسال نامه پیغام گرافیکی برای خودم و برای دریافت کننده نمایان شود که این کار هم بدرستی انجام می شود همانند عکس زیر
فقط مشکلی که وجود دارد این است که هر خط در کنترلر دوبار خوانده می شود و به همین خاطر یک نامه ی ارسالی دوبار ارسال می شود و در دیتا بیس 2بار ذخیره می شود. با اینکه دقیقا همان کدهایی که در ویو ایندکس در قسمت کلید ارسال هست را کات کردم و در سیگنال آر پیست کردم.
کد کنترلر بصورت زیر هست
[HttpPost]
public IActionResult SentLetter(int LetterID, ...)
{
try
{
...
_context.sentLettersUW.Create(SL);
}
return Json(new { status = "ok" });
}
catch
{
return Json(new { status = "error" });
}
}
در اینجا دقیقا خط
_context.sentLettersUW.Create(SL);
دوبار خوانده می شود و به همین خاطر دوبار در دیتابیس ذخیره می شود
کد سیگنال آر هم بصورت زیر
var connection = new signalR.HubConnectionBuilder().withUrl("/myownHub").withAutomaticReconnect().build();
connection.start();
document.getElementById("btnsentLetter").addEventListener("click", function () {
$.ajax({
type: "Post",
url: '/UserArea/Draft/SentLetter',
data: {
'LetterID': $("#letterid").html().trim(),
...
}
}).done(function (result) {
if (result.status == 'ok') {
var userIdList = $("#SelectedUserToSent").val();
connection.invoke("SentLetters", userIdList).catch(function (err) {
return console.error(err.tostring());
});
swal({
...
});
}
});
});
کد زیر هم مربوط به هاب هست
public class LetterHub : Hub
{
private readonly ILettersRepository _iletter;
public LetterHub(ILettersRepository iletter)
{
_iletter = iletter;
}
public async Task SentLetters(string userIdList)
{
List<TreeViewModel> items = JsonConvert.DeserializeObject<List<TreeViewModel>>(userIdList);
for (int i = 0; i < items.Count; i++)
{
await Clients.Users(_iletter.GetUserIdFromPostID(Convert.ToInt32(items[i].id))).SendAsync("RecievedLetter");
}
}
}
لطفا راهنمایی بفرمایید. با زدن کلید ارسال با زدن f12 متوجه شدم که خطای زیر رو
Uncaught (in promise) TypeError: err.tostring is not a function
برای خط
return console.error(err.tostring());
نمایش میده
بفرمایید راه حلی هست؟؟
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
87
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2335
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
70
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
149
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1067
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
473
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1378
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4824
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
238
- پاسخ :
1
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
87
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2335
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
70
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2037
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
149
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1067
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
473
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
948
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1378
- پاسخ :
1
|