ورود

View Full Version : كار با ریدیو باتن لیست در دات نت كور



EnKamran
جمعه 08 دی 1396, 21:01 عصر
سلام.
من دوتا جدول دارم با این مشخصات
Polls : id, title
PollOptions : id, pollid, title, votecount
حالا میخوام تو ویو یك نظرسنجی با ایتمهاش رو نمایش بدم كه هر ایتم به صورت ریدیو باتن هست و كاربر یكی رو انتخاب كنه و فرم رو سابمیت كنه وقتی فرم سابمیت شد یك واحد به viewcount اون ایتم اضافه بشه.
راهی كه خودم رفتم این بود كه یك ویومدل تعریف كردم با دو پراپرتی زیر:
Poll, List<PollOption>
تو ویو هم این ویومدل رو به عنوان مدل نوشتم و بعد نوشتم كه به ازای هر PollOption یك ریدیو باتن درست كنه
حالا مشكل اینجاست كه تگ هلپر ریدیوباتن رو چطوری بنویسم؟asp-for چی باید باشه؟
كه هم ریدیوباتن ها درست نمایش داده بشن (بتونم انتخاب كنم یكی رو فقط) و هم اینكه زمان پست كردن فرم چه انتظاری باید داشته باشم كه اپشن انتخاب شده رو بهمب
اصلا درسته كارم؟میشه راهنمایی كنید؟ سرچ كردم ولی متاسفانه همون كد رو هم مینویسم باز مسسكلداره ملا اینازشرو دیدم ولی وقتی ریدیو باتن میاد خاصیت نیم اونها همه یه ج.یز میشه ای دی هم همون میشه و اینجوری نمیتونم انتخاب كنم اپشنی رو


http://www.c-sharpcorner.com/article/creating-simple-radiobuttonlist-in-asp-net-core-mvc-using-new-tag-helpers/

EnKamran
سه شنبه 12 دی 1396, 18:12 عصر
مشكل از متریالایز بود، چون اینپوت اصلی رو پنهان میكنه و لیبل رو شبیه اینپوت میكنه این مسسكل بوجود میومد.
راه حل(اول ببخشید اگر كدها شاید مشكل املایی داشته باشن با گوشی مینویسم)

Learning references:
به صورت ساده بخوایم توضیح بدیم:
یه جدول داریم:
Option:
Id
Title
یه ویومدل درست میكنیم به این صورت
OptionsViewModel:
List<Option> Options
int SelectedOption
حالا ت ویو همین ویومدل رو به عنوان مدل میذاریم و كدهای زیر برای نمایش


<form method="post" enctype="multipart/form-data" asp-area="Admin" asp-controller="Poll" asp-action="Test">
@Model.Poll.Title
<br/>
@for(int i = 0; i < Model.PollOptions.Count; i++)
{
<p>
<input asp-for="SelectedOption" id="ChecBox_@Model.PollOptions[i].Id" value="@Model.PollOptions[i].Id" type="radio"/>
<label for="ChecBox_@Model.PollOptions[i].Id">@Model.PollOptions[i].Title</label>

<input asp-for="@Model.PollOptions[i].Id" type="hidden"/>
<input asp-for="@Model.PollOptions[i].Title" type="hidden"/>
</p>
}
<input type="submit" value="Click me"/>
</form>