0
votes

Comment adopter des valeurs de Forecheche afin de créer une nouvelle liste de modèle?

@model IEnumerable<OnlineExam.Models.CandidateExam.CandidateExam>


@{
    ViewData["Title"] = "Index";
    var questionList = JsonConvert.DeserializeObject<List<OnlineExam.Models.AdminQuestionModel.QuestionAndAnswers>>(TempData["questionList"].ToString());
    var data = questionList as IEnumerable<OnlineExam.Models.AdminQuestionModel.QuestionAndAnswers>;
    TempData.Keep();

}

<h1>Index</h1>

<p>
    <a asp-action="Create">Create New</a>
</p>
@{
    int count = 0;
}
@foreach (var item2 in Model)
{
    @foreach (var item in data)
    {
        count = count + 1;
        <table class="table" style="background-color:lavender">
            <tbody>
                <tr class="border-light"><td>Question @count :   @item.Question</td></tr>
                <tr class="bg-light"><td>Options : </td></tr>
                <tr class="border-light"><td><input asp-for="@item2.OptionSelected" type="radio" name="counter" value="@item.OptionTwo" /> a) @item.OptionOne</td></tr>
                <tr class="bg-light"><td><input asp-for="@item2.OptionSelected" type="radio" name="counter" value="@item.OptionTwo" /> b) @item.OptionTwo</td></tr>
                <tr class="border-light"><td><input asp-for="@item2.OptionSelected" type="radio" name="counter" value="@item.OptionThree" /> c) @item.OptionThree</td></tr>
                <tr class="bg-light"><td><input asp-for="@item2.OptionSelected" type="radio" name="counter" value="@item.OptionFour" /> d) @item.OptionFour</td></tr>

            </tbody>
        </table>
        <br />
    }
}
<div class="form-group">
    <input type="submit" value="Submit" class="btn btn-primary" />
</div>
.................................................................................................
Basically i want to load data from item to item 2 ie: I want to supply values from one foreach to model(IEnumerable). How do i do tht? 

2 commentaires

Pourriez-vous partager votre candidatexam et Questionandanswers Modèle? Et quel est votre contrôleur?


Rena merci pour votre aide..tht était si gentil de votre part..Je n'était pas incapable de lier les données au modèle à l'aide d'une boucle de foreseach..mais pour une boucle CUD Data..thus résolvé mon problème ..


3 Réponses :


1
votes

Vous ne pouvez pas lier l'élément de forach avec les éléments arrière postés, car il gâche la convention de nommage que la Convention MVC s'appuie sur la récupération des données. Vous devrez utiliser une boucle à cette fin. xxx


0 commentaires

1
votes

Voici une démonstration de travail:

1.Model: xxx

2.View (Notez que vous définissez le Optionone avec mal Valeur @ item.Optiontwo ): xxx

3.Controller: xxx

4. Résultat: Entrez la description de l'image ici


0 commentaires

0
votes
@model OnlineExam.Models.CandidateExam.CandidateItem
@{
    ViewData["Title"] = "Index";
    var questionList = JsonConvert.DeserializeObject<List<OnlineExam.Models.AdminQuestionModel.QuestionAndAnswers>>(TempData["questionList"].ToString());
    //var data = questionList as IEnumerable<OnlineExam.Models.AdminQuestionModel.QuestionAndAnswers>;
    var data2 = questionList as List<OnlineExam.Models.AdminQuestionModel.QuestionAndAnswers>; //new stackov
    int examAttemptId = Convert.ToInt32(TempData["examAttemptId"].ToString());
    TempData.Keep();

}

<h1>Index</h1>

    <p>
        <a asp-action="Create">Create New</a>
    </p>
    <div>
        <form enctype="multipart/form-data" asp-action="AnswerExam">

            @{
                int counter = 0;
            }
            @for (var i = 0; i < data2.Count(); i++)
            {
                counter = counter + 1;
                <input type="hidden" asp-for="candidateExamsList[i].ExamId" value="@data2[i].ExamId" />
                <input type="hidden" asp-for="candidateExamsList[i].QuestionId" value="@data2[i].QuestionId" />
                <input type="hidden" asp-for="candidateExamsList[i].ExamAttemptId" value="@examAttemptId" />
                <span>Question @counter) </span>@data2[i].Question.ToString()<br />
                <span>Options : </span><br />
                <span>a) </span>@Html.RadioButtonFor(x => x.candidateExamsList[i].OptionSelected, data2[i].OptionOne) @data2[i].OptionOne;<br />
                <span>b) </span>@Html.RadioButtonFor(x => x.candidateExamsList[i].OptionSelected, data2[i].OptionTwo) @data2[i].OptionTwo;<br />
                <span>c) </span>@Html.RadioButtonFor(x => x.candidateExamsList[i].OptionSelected, data2[i].OptionThree) @data2[i].OptionThree;<br />
                <span>d) </span>@Html.RadioButtonFor(x => x.candidateExamsList[i].OptionSelected, data2[i].OptionFour) @data2[i].OptionFour;<br /><br />
            }

            <div class="form-group">
                <button type="submit" value="Submit" class="btn btn btn-primary" />
            </div>
        </form>
        </div>
This is how i cud fix my issue..i used a for loop instead of foreach loop to bind data from the list to the model.

0 commentaires