C# 如何在MVC 5中将选定的radiobutton值与html.actionlink一起发送

C# 如何在MVC 5中将选定的radiobutton值与html.actionlink一起发送,c#,asp.net-mvc,actionlink,razorengine,C#,Asp.net Mvc,Actionlink,Razorengine,我在MVC5应用程序中按首字母排序。现在我想添加单选按钮,以确定它是按姓名排序还是按姓氏排序。问题是,我不知道在用户单击所选单选按钮后,如何将其值与Html.ActionLink一起发送到控制器 我希望我想要实现的目标是可以理解的 视图: 您可能需要使用jquery来解决这个问题 $(function () { $('.form-horizontal a').on('click', function () { var url = $(this).attr('hre

我在MVC5应用程序中按首字母排序。现在我想添加单选按钮,以确定它是按姓名排序还是按姓氏排序。问题是,我不知道在用户单击所选单选按钮后,如何将其值与Html.ActionLink一起发送到控制器

我希望我想要实现的目标是可以理解的

视图:


您可能需要使用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;
    });
})

您需要使用javascript/jquery来构造url。显示一个选项。
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());
    }
}
$(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;
    });
})