mvc5剃须刀向控制器发送参数

本文关键字:参数 控制器 剃须刀 mvc5 | 更新日期: 2023-09-27 18:28:11

我想根据视图中的用户选择向控制器发回一个参数。

这就是我的观点:

@model IEnumerable<Users>
@{
    ViewBag.Title = "FieldSaver Users";
}
<h2>Users</h2>
@foreach(char c in ViewBag.Alphabet)
{
    @Html.ActionLink(c.ToString(), "Home/" + c, new object { }, new { @class = "alphabet", @letter = c })
}
    <div class="table-responsive">
        <table class="table table-striped">
            <tr>
                <td>Username</td>
                <td>First name</td>
                <td>Last name</td>
            </tr>
            @foreach (var user in Model)
            {
                <tr>
                    <td>@user.UserName</td>
                    <td>@user.FirstName</td>
                    <td>@user.LastName</td>
                </tr>
            }
        </table>
    </div>

这就是控制器:

   public ActionResult Home(string letter)
            {
                ViewBag.Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                using (var db = new App.Models.DbContext())
                {
                    List<Users> users = (from p in db.Users
                        select p).ToList();
                    return View(users);
                }
                return View();
            }

因此,当有人点击字母表链接中的一个字母时,我想将值发回控制器,目前正在进行回发,但字母表参数为空。

我做错了什么?

mvc5剃须刀向控制器发送参数

当前用作new object { }的是提供路线数据的位置。您正在将其添加为HTML属性。

在你的情况下,应该是这样的:

@Html.ActionLink(c.ToString(),
    "Home", 
    new { letter = c }, 
    new { @class = "alphabet" })