Как получить значение переключателя для различных идентификаторов в контроллере при отправке формы

@Html.RadioButtonFor(m => m.IsCorrectAnswerOption1, "IsCorrectAnswerOption1")<lable>A</lable>
@Html.RadioButtonFor(m => m.IsCorrectAnswerOption2, "IsCorrectAnswerOption2")<lable>B</lable>
@Html.RadioButtonFor(m => m.IsCorrectAnswerOption3, "IsCorrectAnswerOption3")<lable>C</lable>
@Html.RadioButtonFor(m => m.IsCorrectAnswerOption4, "IsCorrectAnswerOption4")<lable>D</lable>

(или)

<input type="radio" name="IsCorrectAnswerOption1" id="IsCorrectAnswerOption1" /> A
<input type="radio" name="IsCorrectAnswerOption2" id="IsCorrectAnswerOption2" /> B
<input type="radio" name="IsCorrectAnswerOption3" id="IsCorrectAnswerOption3" /> C
<input type="radio" name="IsCorrectAnswerOption4" id="IsCorrectAnswerOption4" /> D

Это мой метод действия в контроллере:

public ActionResult Submit(QuestionBank questionBank)
        {
            int status;
            string constr = ConfigurationExtensions.GetConnectionString(Configuration, "conStr");
            using (SqlConnection connection = new SqlConnection(constr))
            {
                using (SqlCommand command = new SqlCommand("spSaveQuestionandAnswers"))
                {
                    connection.Open();

                    command.Parameters.AddWithValue("@SectionID", questionBank.SectionId);
                    command.Parameters.AddWithValue("@DifficultyLevelID", questionBank.DifficultyLevelID);
                    command.Parameters.AddWithValue("@QBQuestion", questionBank.QBQuestion);
                    command.Parameters.AddWithValue("@Option1", questionBank.Option1);
                    command.Parameters.AddWithValue("@Option2", questionBank.Option2);
                    command.Parameters.AddWithValue("@Option3", questionBank.Option3);
                    command.Parameters.AddWithValue("@Option4", questionBank.Option4);
                    command.Parameters.AddWithValue("@QBWeightage", questionBank.QBWeightage);
                    command.Parameters.AddWithValue("@IsCorrectAnswerOption1", questionBank.IsCorrectAnswerOption1);
                    command.Parameters.AddWithValue("@IsCorrectAnswerOption2", questionBank.IsCorrectAnswerOption2);
                    command.Parameters.AddWithValue("@IsCorrectAnswerOption3", questionBank.IsCorrectAnswerOption3);
                    command.Parameters.AddWithValue("@IsCorrectAnswerOption4", questionBank.IsCorrectAnswerOption4);
                    command.CommandType = System.Data.CommandType.StoredProcedure;
                    command.Connection = connection;
                    //SqlDataReader reader = command.ExecuteReader();
                    int numberOfRecords = command.ExecuteNonQuery();
                    ViewBag.Response = numberOfRecords;
                    Response.Headers["test"] = numberOfRecords.ToString();

                    //status = command.ExecuteNonQuery();
                   // reader.Close();
                    connection.Close();


                }
            }

Это мой метод действия return RedirectToAction ("QuestionBank"); }

0
Arun 28 Окт 2019 в 17:14

2 ответа

Лучший ответ

Вы можете сделать что-то вроде этого, чтобы отправить выбранные значения радиобоксов в ваш метод Controller:

@using (Html.BeginForm("Submit", "Home", FormMethod.Post, new { @id = "myFormId", @class = "form-horizontal", role = "form", enctype = "multipart/form-data" }))
@Html.AntiForgeryToken()
{
 <input type="radio" name="childChkbox" value="IsCorrectAnswerOption1" id="checkAll" /> A
 <input type="radio" name="childChkbox" value="IsCorrectAnswerOption2" id="checkAll" /> B
 <input type="radio" name="childChkbox" value="IsCorrectAnswerOption3" id="checkAll" /> C
 <input type="radio" name="childChkbox" value="IsCorrectAnswerOption4" id="checkAll" /> D

<input id="submitform" type="submit" value="Submit Information" class="btn btn-primary btn-md" />
}

И ваш метод Controller будет выглядеть так:

//Receive your Radiobox values here for selected radioboxes
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Submit(QuestionBank questionBank, string[] childChkbox)
{
  //Here you get selected ID's list as required
  List<int> myList=childChkbox.Select(int.Parse).ToList();   
}
0
Rahul Sharma 28 Окт 2019 в 15:00

Кажется, что ваши свойства модели от IsCorrectAnswerOption1 до IsCorrectAnswerOption4 являются логическими

Поэтому, если вы попытаетесь инициализировать логические значения true или false, возможно, вы получите логические значения в методе действия

@Html.RadioButtonFor(m => m.IsCorrectAnswerOption1, true)<lable>A</lable>
@Html.RadioButtonFor(m => m.IsCorrectAnswerOption2, false)<lable>B</lable>
@Html.RadioButtonFor(m => m.IsCorrectAnswerOption3, false)<lable>C</lable>
@Html.RadioButtonFor(m => m.IsCorrectAnswerOption4, false)<lable>D</lable>
0
er-sho 28 Окт 2019 в 17:58
58592540