دوستان خسته نباشید من در کنترلم اکشن ایندکس دارم
public IActionResult Index()
{
List<City> cities = _iadmin.FillCites();
City city = new City();
return View(cities);
}
یک ویو هم ساختم براش که هم اطلاعات دیتابیس رو تو جدول نمایش میده که از مدل زیر استفاده کردم
@model IEnumerable<Football.DataLayer.Entities.City>
حال من می خوام علاوه اینکه در این ویو مطالب رو نمایش بده یک فرم هم ایجاد کنم که نام شهر رو برام ارسال کنه
<div class="form-group">
<label asp-for="CityName" class="control-label"></label>
<input asp-for="CityName" class="form-control" />
<span asp-validation-for="CityName" class="text-danger"></span>
</div>
حالا من نیاز به این cityname دارم که تو asp-for استفاده کردم چطور این مدل را هم به این ویو ارسال کنم که بتونم فرمم را ارسال کنم به دیتابیس
درواقع باید دوتا مدل داشته باشم چطور این کارو انجام بدم ممنون
درواقع من از یک جدول می خوام هم به صورت لیست دریافت کنم هم بصورت ساده
@model IEnumerable<Football.DataLayer.Entities.City>
با سلام و درود
شما می تونید یک پوشه در لایه Data یا در پوشه Model خودتون درست کنید و اسم اون رو مثلا بذارید ComplexViewModel. سپس یک Class ایجاد کنید با نام دلخواه. مثلا نامش رو بذارید CityComplexViewModel و در این کلاس هر 2 مدل رو تعریف کنید.
در تصویر زیر این کار انجام شده (البته نامها در تصویر متفاوته چون نام دلخواه هست.)
public class CityComplexViewModel
{
public City City{ get; set; }
public Provience Provience { get; set; }
}
همونطوری که در کلاس CityComplexViewModel مشاهده می کنید 2 پراپرتی ایجاد کردیم که یکی همون جدول City هست و دیگری جدول Provience هست . حالا شما از مدل بالا می تونید در View خودتون استفاده کنید
@model CityComplexViewModel
برای ارسال همزمان دو مدل به یک ویو در asp.net core می تونید از روش بالا استفاده کنید.
ضمنا دقت کنید که برای استفاده از Model باید به روش زیر عمل کنید
<div class="form-group">
<label asp-for="City.CityName" class="control-label"></label>
<input asp-for="City.CityName" class="form-control" />
<span asp-validation-for="City.CityName" class="text-danger"></span>
</div>
///یا برای استفاده از مدل دوم
<div class="form-group">
<label asp-for="Provience.Name" class="control-label"></label>
<input asp-for="Provience.Name" class="form-control" />
<span asp-validation-for="Provience.Name" class="text-danger"></span>
</div>
البته در این مثال من دقیقا از کدهای شما استفاده نکردم ولی روش دقیقا همین هست.
موفق باشید
ممنون از پاسختون حالا اگر بخوام یک لیستی از شهر هارو بگیرم باید چکار کنم؟
@model IEnumerable<Football.DataLayer.Entities.City>
یعنی یک مدل برای نمایش شهر ها و یک مدل هم برای ارسال مقادیر شهر ها به دیتابیس؟
فرقی با حالت قبلی نمی کنه. شما میتونید از این حالت هم برای لیست استفاده کنید و هم برای یک رکورد
public class CityComplexViewModel
{
public List<City> City{ get; set; }
public List<Provience> Provience { get; set; }
}
این حالت مثل حالتی هست که یک Model به ویو ارسال میشه. تنها تفاوت اینه که چون بیشتر از یک مدل داریم از یک کلاس واسط استفاده می کنیم تا بتونیم همه مدل ها رو توی یک Model جمع آوری کنیم
ممنون آقای بحرانی فرد اما به یک مشکل خوردم اون هم اینه بخوام هر دو مدل رو برگردونم به صفحه index خطا میده
public IActionResult IndexCity(int id)
{
CityComplexViewModel city = new CityComplexViewModel();
if(id == 0)
{
city.CityList = _iadmin.FillCites();
return View(city);
}
else
{
city.City = _iadmin.FillCityById(id);
return View(city);
}
}
به هر شکلی می فرستم باز با خطا مواجه میشم
public IActionResult IndexCity(int id)
{
CityComplexViewModel city = new CityComplexViewModel();
if(id == 0)
{
city.CityList = _iadmin.FillCites();
return View(city.CityList);
}
else
{
city.City = _iadmin.FillCityById(id);
return View(city.City);
}
}
به شکل بالا هم return می کنم باز خطا می ده چطور می تونم شرط کنم که اگر id مساوی با 0 بود فقط یک مدل ارسال بشه؟
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
9
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
40
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
101
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
133
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1046
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
452
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1366
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4810
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
228
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
126
- پاسخ :
0
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
9
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
40
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2024
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
101
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
133
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1046
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
452
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
936
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1366
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4810
- پاسخ :
1
|