从单选按钮选择传递价值,在MVC控制器 [英] Passing selected value from the radio buttons to the controller in MVC

查看:129
本文介绍了从单选按钮选择传递价值,在MVC控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想这个选择的单选按钮值从剃刀视图控制器通过....
可有人请给我一个想法如何做到这一点?.....................
我查看看起来是这样的:

  @using(Html.BeginForm(指数,考试))
{    @ Html.Hidden(QID,Model.ID,新{@id =ID})
    <表>
        &所述; TR>
            &所述; TD>
                @ Model.ID
            < / TD>
            &所述; TD>
                @ Model.QuestionDes
            < / TD>
        < / TR>
        &所述; TR>
            &所述; TD>
                < P> @ Html.RadioButton(正确答案为新{@id = 1})@ Model.Answer1< / P>
            < / TD>
        < / TR>
        &所述; TR>
            &所述; TD>
                < P> @ Html.RadioButton(ANSWER2,新{@id = 2})@ Model.Answer2< / P>
            < / TD>
        < / TR>
        &所述; TR>
            &所述; TD>
                < P> @ Html.RadioButton(ANSWER3,新的{@id = 3})@ Model.Answer3< / P>
            < / TD>
        < / TR>
        &所述; TR>
            &所述; TD>
                < P> @ Html.RadioButton(Answer4,新的{@id = 4})@ Model.Answer4< / P>
            < / TD>
        < / TR>    < /表>    <输入类型=提交值=下一步/>}
@using(Html.BeginForm(prevIndex,考试))
{    @ Html.Hidden(qid1,Model.ID,新{@id =ID1})
    <输入值=preV类型=提交/>
}

我的控制器看起来是这样的:.........

 公共类ExamController:控制器
    {
        [HTTPGET]
        公众的ActionResult指数()
        {
            IQuestionService SER =新QuestionService();
            QuestionLoadDTO Q = ser.GetIndividualQuestions(1);
            返回查看(Q);
        }        [HttpPost]
        公众的ActionResult指数(QuestionLoadDTO疑问句)
        {
            诠释计数= 0;
            数= int.Parse(请求[QID]的ToString());
            算上++;
            如果(计数< = 4)
            {
                IQuestionService SER =新QuestionService();
                QuestionLoadDTO Q = ser.GetIndividualQuestions(计数);
                返回查看(Q);
            }
            返回RedirectToAction(提交);        }
        公众的ActionResult prevIndex(QuestionLoadDTO疑问句)
        {
            INT的count1 = 0;
            COUNT1 = int.Parse(请求[qid1]的ToString());
            count1--;
            如果(COUNT1小于5 || COUNT1> = 0)
            {
                IQuestionService SER =新QuestionService();
                QuestionLoadDTO Q = ser.GetIndividualQuestions(COUNT1);
                返回视图(指数,Q);
            }
            返回RedirectToAction(结束);        }
        公众的ActionResult提交()
        {
            返回查看();
        }
        公众的ActionResult结束()
        {
            返回查看();
        }
    }

这些是其他的方法:

  QuestionLoadDTO IQuestionService.GetIndividualQuestions(INT指数)
{
    IQuestionData SER =新QuestionRepository();    QuestionLoadDTO Q = ser.GetIndividualQues(索引);    返回q;
}
公共QuestionLoadDTO GetIndividualQues(INT指数)
{
    上下文CON =新的上下文();
    问题question = con.Questions.Find(指数); //其中(E => e.ID ==指数).FirstOrDefault();
    QuestionLoadDTO DTO =新QuestionLoadDTO()
    {
        ID = question.ID,
        QuestionDes = question.QuestionDes,
        ANSWER1 = question.Answer1,
        ANSWER2 = question.Answer2,
        ANSWER3 = question.Answer3,
        Answer4 = question.Answer4    };
    返回DTO;
}

感谢您!!!!


解决方案

 添加财产而公共字符串selectanswer {搞定;组; }
在添加取景@ Html.RadioButtonFor(M = GT; m.selectanswer,ANSWER1)
             @ Html.RadioButtonFor(M => m.selectanswerANSWER2)
             @ Html.RadioButtonFor(M => m.selectanswerANSWER3)
             @ Html.RadioButtonFor(M => m.selectansweranswer4)在控制它根据选定的单选按钮... i.e.either ANSWER1回传值或接听2etc。

I'm trying to pass this selected radio button value from the razor view to the controller.... can someone please give me an idea how to do this?..................... My View looks like this:

@using (Html.BeginForm("Index", "Exam"))
{

    @Html.Hidden("qid", Model.ID, new { @id = "id" })
    <table>
        <tr>
            <td>
                @Model.ID
            </td>
            <td>
                @Model.QuestionDes
            </td>
        </tr>
        <tr>
            <td>
                <p>@Html.RadioButton("Answer1", new { @id = 1 })  @Model.Answer1 </p>
            </td>
        </tr>
        <tr>
            <td>
                <p>@Html.RadioButton("Answer2", new { @id = 2 })  @Model.Answer2 </p>
            </td>
        </tr>
        <tr>
            <td>
                <p>@Html.RadioButton("Answer3", new { @id = 3 })  @Model.Answer3 </p>
            </td>
        </tr>
        <tr>
            <td>
                <p>@Html.RadioButton("Answer4", new { @id = 4 })  @Model.Answer4 </p>
            </td>
        </tr>

    </table>

    <input type="submit" value="Next" />

}
@using (Html.BeginForm("PrevIndex", "Exam"))
{

    @Html.Hidden("qid1", Model.ID, new { @id = "id1" })
    <input value="Prev" type="submit" />
}

My Controller looks like this:.........

 public class ExamController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            IQuestionService ser = new QuestionService();
            QuestionLoadDTO q = ser.GetIndividualQuestions(1);
            return View(q);
        }

        [HttpPost]
        public ActionResult Index(QuestionLoadDTO ques)
        {
            int count = 0;
            count = int.Parse(Request["qid"].ToString());
            count++;
            if (count <= 4)
            {
                IQuestionService ser = new QuestionService();
                QuestionLoadDTO q = ser.GetIndividualQuestions(count);
                return View(q);
            }
            return RedirectToAction("Submit");

        }
        public ActionResult PrevIndex(QuestionLoadDTO ques)
        {
            int count1 = 0;
            count1 = int.Parse(Request["qid1"].ToString());
            count1--;
            if (count1 < 5 || count1 >= 0)
            {
                IQuestionService ser = new QuestionService();
                QuestionLoadDTO q = ser.GetIndividualQuestions(count1);
                return View("Index", q);
            }
            return RedirectToAction("End");

        }
        public ActionResult Submit()
        {
            return View();
        }
        public ActionResult End()
        {
            return View();
        }




    }

These are the other methods:

QuestionLoadDTO IQuestionService.GetIndividualQuestions(int index)
{
    IQuestionData ser = new QuestionRepository();           

    QuestionLoadDTO q = ser.GetIndividualQues(index);

    return q;
}
public QuestionLoadDTO GetIndividualQues(int index)
{
    Context con = new Context();
    Question question = con.Questions.Find(index);//Where(e => e.ID == index).FirstOrDefault();
    QuestionLoadDTO dto = new QuestionLoadDTO()
    {
        ID = question.ID,
        QuestionDes = question.QuestionDes,
        Answer1 = question.Answer1,
        Answer2 = question.Answer2,
        Answer3 = question.Answer3,
        Answer4 = question.Answer4

    };                                
    return dto;
}

Thank you!!!!

解决方案

add property-   public string selectanswer { get; set; }
Add in view- @Html.RadioButtonFor(m=>m.selectanswer,"answer1")
             @Html.RadioButtonFor(m => m.selectanswer, "answer2")
             @Html.RadioButtonFor(m => m.selectanswer, "answer3")
             @Html.RadioButtonFor(m => m.selectanswer, "answer4")

In controller it postback the value according to selected radio button...i.e.either answer1 or answer 2etc.

这篇关于从单选按钮选择传递价值,在MVC控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆