با سلام .
- یک مدل داریم که یک پراپرتی آن از یک مدل دیگه تامین میشه و بصورت یک لیست نشان داده میشه .
- در Modal ی که Model رو نشون میده اطلاعات مربوطه صحیح نشون داده میشه .
- فرم تکمیل شده به کنترلر ارسال میشه، تمام اطلاعات بجز یک مورد هست . که دستور ModelState.IsValid نامعتبر (False) میشه و انجام نمیده
در ذیل مدل ها و برنامه و خطا ارسال میشه .
لطفا بررسی بفرمایید کجا اشتباه رخ داده که اطلاعات ( درجه شعبه ) به کنترلر ارسال نمیشه .
مدل شعبه :
public class Branchs
{
public int Id { get; set; }
[Display(Name = "کدشعبه/واحد")]
[Required(ErrorMessage = "کدشعبه/واحد را وارد کنید")]
public string BranchCode { get; set; }
[Display(Name = "نام شعبه/واحد")]
[Required(ErrorMessage = "نام شعبه/واحد را وارد کنید")]
public string BranchName { get; set; }
[Display(Name = "درجه شعبه/واحد")]
[Required(ErrorMessage = "درجه شعبه/واحد را وارد کنید")]
[NotMapped]
public List<SelectListItem> BranchGrade { get; set; }
[Display(Name = " درجه شعبه")]
public string BranchGradeId { get; set; }
}
مدل درجه شعبه :
public class BranchGrade
{
public int Id { get; set; }
public string Grade { get; set; }
}
بخشی از مودال که درجه شعب رو مشخص میکنه :
<div class="form-group">
<label asp-for="BranchGradeId" class="col-lg-4 col-sm-4 control-label"></label>
<div class="col-lg-6">
<select asp-for="BranchGradeId" asp-items="@Model.BranchGrade" class="form-control">
<option>--- انتخاب شعبه --------</option>
</select>
</div>
</div>
تصویر مربوط به مودال :
در ادامه و پس از ارسال اطلاعات به کنترلر :
لطفا راهنمایی بفرمایید چرا BranchGrade به کنترلر ارسال نمیشود .
ما به اطلاعات به اطلاعات Grade از مدل BranchGrade نیاز داریم ....
به نظر بنده تغییرات زیر میتونه بهتون کمک کنه. اول اینکه شما برای نمایش اطلاعات در تگ Select یا همون کمبوباکس نیازی ندارید داخل Model یک پراپرتی به صورت List تعریف کنید. در واقع همون پراپرتی BranckGradeId کافیه.
public class Branchs
{
public int Id { get; set; }
[Display(Name = "کدشعبه/واحد")]
[Required(ErrorMessage = "کدشعبه/واحد را وارد کنید")]
public string BranchCode { get; set; }
[Display(Name = "نام شعبه/واحد")]
[Required(ErrorMessage = "نام شعبه/واحد را وارد کنید")]
public string BranchName { get; set; }
[Display(Name = " درجه شعبه")]
public string BranchGradeId { get; set; }
}
خب حالا برای پر کردن تگ Select هم میتونید از طریق کنترلر و از طریق یک ViewBag این کار رو انجام بدید.
//In Controller
private void FillCombo()
{
List<BranchGrade> ListGrade = _context.BranchGrade.ToList();
BranchGrade GradeFirst = new BranchGrade
{
Id = "-1",
Grade = "--- انتخاب شعبه----"
};
ListGrade .Insert(0, GradeFirst );
ViewBag.GradeList = ListGrade;
}
public IActionResult Index()
{
FillCombo();
return View();
}
خب حالا تو View هم میتونید خیلی راحت ViewBag رو دریافت کنید و تگ Select رو مقداردهی کنید.
@{
ViewData["Title"] = "Title";
List<BranchGrade> MyBranchGrade = ViewBag.BranchGrade;
}
<div class="form-group">
<label asp-for="BranchGradeId" class="col-lg-4 col-sm-4 control-label"></label>
<div class="col-lg-6">
<select asp-for="BranchGradeId" asp-items="@(new SelectList(MyBranchGrade ,"Id","Grade"))" class="form-control">
</select>
</div>
</div>
خب توسط دستورات بالا شما به راحتی میتونید اطلاعات رو داخل تگ Select نمایش بدید. حالا تگ Select شما BranchGradeId هست و Id و name دقیقا BranchGradeId هست. و توی کنترلر هم به راحتی مقدارش دریافت میشه.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
111
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
216
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
111
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|