如何发送选定的单选按钮值与html一起.MVC 5中的actionlink
本文关键字:一起 html MVC actionlink 中的 何发送 单选按钮 | 更新日期: 2023-09-27 17:54:58
我在MVC 5应用程序中按首字母排序。现在我想添加单选按钮来确定它是按姓名还是按姓氏排序。问题是,我不知道如何发送选定的单选按钮的值与Html一起。ActionLink(在用户点击之后)到控制器。
我希望你能理解我想要达到的目的。
视图:
using (Html.BeginForm())
{
@Html.RadioButton("sortButton", "FirstName", true) <span>First Name</span>
@Html.RadioButton("sortButton", "LastName") <span>Last Name</span>
<div class="form-inline">
<div class="form-group">
<div class="form-horizontal">
@Html.ActionLink("ALL", "Index", new { sortLetter = "" }) |
@Html.ActionLink("A", "Index", new { sortLetter = "A" }) -
@Html.ActionLink("B", "Index", new { sortLetter = "B" }) -
@Html.ActionLink("C", "Index", new { sortLetter = "C" }) -
@Html.ActionLink("D", "Index", new { sortLetter = "D" }) -
etc...
</div>
</div>
</div>
}
控制器:
public class HomeController : Controller
{
private UsersContext ctx = new UsersContext();
public ActionResult Index(string sortLetter, string sortButton)
{
var contacts = from s in ctx.Users
select s;
// Sorting A - Z
if (sortLetter != null)
{
if (sortButton == "FirstName"
{
contacts = contacts.Where(o => o.FirstName.ToUpper().StartsWith(sortLetter));
}
else
{
contacts = contacts.Where(o => o.LastName.ToUpper().StartsWith(sortLetter));
}
}
return View(contacts.ToList());
}
}
您可能需要使用jquery来解决这个
$(function () {
$('.form-horizontal a').on('click', function () {
var url = $(this).attr('href'),
selectedSortLetter = $('input[type="radio"][name="sortButton"]:checked').val();
$(this).attr('href', url + '?sortLetter=' + selectedSortLetter);
//or directly browse to url like below.
location.href = url + '?sortLetter=' + selectedSortLetter;
});
})