在我的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="answer" 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
一样使用所选的单选按钮值。
答案 0 :(得分:0)
如果您希望表单发布内容,则需要提交表单,锚标记不会提交表单。
你需要Ajax来做这件事(有时,可能涉及为不显眼的ajax,jquery等安装必要的块包。)
$('#nextButton').click(function(){
$.ajax({
type: "POST",
url: '@Url.Action("Next", "Index")',
data: {
selectedQuestionId : $("input[type='radio']:checked").value,
nextQuestionId: Model.NextQuestion
}
});
});
快乐的编码!