با سلام ... داخل پروژه یک ریپوزیتوری نوشتم برای رد درخواست امانت کتاب با استفاده از فرم مودال قسمت نمایش فرم مودال در HttpGet مشکلی نداره اما در قسمت Post وقتی BreackPoint میزنم مقدار id==0 قرار میده و وارد صفحه ارور میشه .. البته حدس میزنم که بخاطر اینه که در partialView مقدار Id قرار ندادم چون خطا میزنه .. چطور میشه <type="hiddwn" input> مربوط به فرمی که با ViewModel ارتباط داره این تگ input بدون مشکل کار کنه ؟
//کد مربوط به ریپوزیتوری
public void PostRequestReject(ManageRequestViewModel model)
{
var query = (from br in _context.BarrowBook_Tbl where br.Id == model.Id select br);
var result = query.SingleOrDefault();
if (query.Count() != 0)
{
result.flag = 3;
result.requestDate = DateTime.Now;
_context.BarrowBook_Tbl.Attach(result);
_context.Entry(result).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
_context.SaveChanges();
}
}
//کد قسمت controller
[HttpPost]
public IActionResult RejectRquestPost(ManageRequestViewModel model)
{
_manageRequestRepository.PostRequestReject(model);
return RedirectToAction("Index");
}
کدهای قسمت PartialView
@model IEnumerable<LibraryWebSystem.DataLayer.ViewModels.ManageRequestViewModel>
<form asp-controller="ManageRequest" asp-action="RejectRquestPost" method="post">
<div class="modal-header">
<button type="button" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">رد درخواست امانت</h4>
</div>
@foreach (var item in Model)
{
<div class="modal-body">
آیا از رد درخواست کاربر با نام <span>@item.userFullName</span> برای کتاب <span>@item.BookName</span> مطمین هستید ؟
</div>
}
<div class="modal-footer">
<button type="button" data-dismiss="modal">بازگشت</button>
<button type="submit">
تایید
</button>
</div>
</form>
ممنون میشم راهنمایی بفرمایید
فکر میکنم مشکل شما این هست که میخواید یک مقدار رو از View یا PartialView به سمت کنترلر ارسال کنید و نمی تونید. ببینید شما یک اکشن متد دارید از نوع HttpGet که می فرمایید مشکلی نداره و Id رو در اینجا دارید و یک اکشن متد هم از نوع HttpPost که در اینجا نمی تونید مقدار رو دریافت کنید.
به مثال زیر توجه کنید :
شما در اکشن متد HttpGet می تونید مقدار Id رو درون یک ViewBag نگهداری کنید.
[HttpGet]
public IActionResult myName(int Id)
{
ViewBag.myId = Id;
return PartialView();
}
در کدهای View
<form>
...
<input Id="Id" name="Id" value="@ViewBag.myId" hidden />
</form>
کد بالا رو خیلی خطلاصه نوشتم. در تگ فرم خودتون یک input قرار بدید و در value اون مقدار ViewBag رو قرار بدید. حالا بعد از اینکه فرم شما به سمت سرور Post میشه در اکشن متد HttpPost هم به مقدار Id دسترسی دارید.
[HttpPost]
public IActionResult myName(int Id)
{
//عملیات دیتابیس
}
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
97
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2340
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
74
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
120
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
153
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1072
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
477
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1381
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4829
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
243
- پاسخ :
1
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
97
- پاسخ :
1
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2340
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
74
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2042
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
120
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
153
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1072
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
477
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
951
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1381
- پاسخ :
1
|