单击 Html.ActionLink 时返回 Html.BeginForm 中所选单选按钮的值

本文关键字:Html 单选按钮 BeginForm ActionLink 返回 单击 | 更新日期: 2023-09-27 18:34:31

在我的MVC项目中,我目前在我的视图中有以下代码

编辑:我刚刚检查过,@using语句可以用一个简单的<form>代替,它似乎仍然工作相同。然而,仍然有同样的问题。

    @using (Html.BeginForm("Index", "AccountsFinance", FormMethod.Post))
    {
        <table cellspacing="10">
            <tr>
                @foreach (string answer in Model.Answers)
                {
                <td><input type="radio" name="answerswer" value="@answer" /><span>@answer</span></td>
                }
            </tr>
        </table>
        <div id="footer">
            <input class="btn btn-success" direction="false" type="submit" name="Back" value="Back" />
            @if(Model.NextQuestion == 6)
            {
                <input type="submit" @Html.ActionLink("Next", "Index", "Result") />
            }
            else
            {
                <a id="nextButton">@Html.ActionLink("Next", "Index", new { questionId = Model.NextQuestion })</a>
            }
        </div>
    }

我需要的是当用户单击@Html.ActionLink...(具有id="nextButton(时,表单将所选单选按钮的值发送到控制器方法。这是我的控制器中的代码:

    public ActionResult Index(string questionId)
    {
        int qId = int.Parse(questionId);
        using (S3WEntities1 ent = new S3WEntities1())
        {
            afqList.Question = ent.Questions.Where(w => w.QuQuestionId == qId).Select(s => s.QuQuestion).FirstOrDefault().ToString();
            afqList.Answers = ent.Answers.Where(w => w.AnsQuestionId == qId).Select(s => s.AnsAnswer).ToList();
            afqList.NextQuestion = qId + 1;
        }
        return View("Index", afqList);
    }

我以前已经实现过这一点,但在使用 @Html.BeginForm 元素等时没有。那么,当单击@Html.ActionLink("Next"...时,如何将所选单选按钮的值传递回控制器呢?提前感谢!


编辑2:另一个类似的问题也可以解决我的问题,如何将所选单选按钮的值分配给模型中创建的变量,类似于questionId = Model.NextQuestion。如果回答了这个问题,我可以简单地对所选单选按钮值Model.NextQuestion执行相同的操作。

单击 Html.ActionLink 时返回 Html.BeginForm 中所选单选按钮的值

如果你想要表单 要发布某些内容,则需要提交表单,锚标记不会进行表单提交。

你需要 Ajax 来做到这一点(有时,可能涉及为不显眼的 ajax、jquery 等安装必要的 nugget 包(。

$('#nextButton').click(function(){
    $.ajax({
                type: "POST",
                url: '@Url.Action("Next", "Index")',
                data: { 
                 selectedQuestionId : $("input[type='radio']:checked").value, 
                 nextQuestionId: Model.NextQuestion 
                      }
          }); 
});

祝您编码愉快!