• 1399/04/18

ساخت ازمون انلاین در asp.net core :

با سلام خدمت استاد عزیز 

توی یه قسمتی از پروژه من لازم دارم یه چیزی مثل ازمون انلاین بنویسم 

هر ازمون لیستی از سوال ها را دارد و میخواهم سوال ها را نمایش دهم تا کاربر بتواندجواب دهد و پس از ازمون تنیجه در دیتابیس ذخیره شود 

مدل سوال ها به صورت زیر است 

        public int QuestionId { get; set; }

        [Display(Name = "آزمون")]
        public int ExamId { get; set; }

        [Display(Name = "متن سوال")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [MaxLength(450, ErrorMessage = "{0} نمی تواند بیشتر از {1} کاراکتر باشد .")]
        public string QuestionTitle { get; set; }

        [Display(Name = "گزینه 1")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string Option1 { get; set; }

        [Display(Name = "گزینه 2")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string Option2 { get; set; }

        [Display(Name = "گزینه 3")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string Option3 { get; set; }

        [Display(Name = "گزینه 4")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string Option4 { get; set; }


        [Display(Name = "جواب سوال")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public int Answer { get; set; }

در Controllers من یه مدل از  ازمون را به view پاس دادم و از ان جایی که هر ازمون لیستی از Question  ها را دارد با یه حلقه foreach سوال ها را نمایش دادم  

مثل کد زیر 

          @foreach (var question in _examService.GetQuestionsByExamId(Model.ExamId))
            {
                <div class="content-box">
                    <div class="test-question">
                        <span>  @question.QuestionTitle </span>
                        @question.QuestionId
                    </div>
                    <div class="test-option">
                        <label asp-for="@question.Option1" class="control-label"></label>
                        <input type="radio" name="Question" group="@question.QuestionId" value="1-@question.QuestionId-@Model.ExamId" />

                        <label asp-for="@question.Option2" class="control-label"></label>
                        <input type="radio" name="Question" group="@question.QuestionId" value="2-@question.QuestionId-@Model.ExamId" />

                        <label asp-for="@question.Option3" class="control-label"></label>
                        <input type="radio" name="Question" group="@question.QuestionId" value="3-@question.QuestionId-@Model.ExamId" />

                        <label asp-for="@question.Option4" class="control-label"></label>
                        <input type="radio" name="Question" group="@question.QuestionId" value="4-@question.QuestionId-@Model.ExamId" />
                    </div>
                </div>
            }

حالا سوال بنده اینه که در view به چه صورت باید مقدار هایی که کاربر انتخاب کرده را به Controllers  پاس داد ؟

سوال ها 4 گذینه هستن  و اگر name مربوط به هر radio را id قرار دهیم چه طور باید به Controllers  ارسال کنیم ؟ 

دو سه تا نمونه از سایت برنامه نویسان دیدم ولی نمونه ها webform بودن 

ممنون میشم راهنمایی کنید 

با تشکر 

 

 

 

  • 1399/04/18
  • ساعت 19:22

سلام 

به هر دسته از Radio ها یم  name بدید اینطوری value آیتم انتخاب شده ارسال میشه 

 



  • 1399/04/18
  • ساعت 19:34

لینکی که ارسال کردین به احتمال زیاد جواب خیلی از سوال های من رو میده 

خیلی سرچ کردم ولی این مشکل باید به دست شما درست میشد

تشکر فراوان 


logo-enamadlogo-samandehi