c# - AsP.Net MVC 5 如何在 View 中调用函数

标签 c# asp.net asp.net-mvc asp.net-mvc-5

我有 ASP.Net MVC 5 应用程序,我想从 View 中调用一个方法,我该怎么做?

我的代码:

我的用户列表函数:

    public ActionResult UsersList()
    {

        var User_VM = new UserVM
        {
            MyUsers = context.Users.OrderBy(u => u.Email).Include(u => u.Roles).ToList()
        };

        return View(User_VM);

    }

用户 ListView :

@foreach(var user in Model.MyUsers)
{
    <tr>
        <td>@user.Email</td>
        <td>
            @foreach(var r in user.Roles)
            {
                <p>
                    @Html.Action(GetRoleNameById(r.RoleId))
                </p>
            }
        </td>
    </tr>
}

和我在 Controller 中的功能:

   public ActionResult GetRoleNameById(string RoleId)
    {
        var RoleName = context.Roles.Where(r => r.Id == RoleId).FirstOrDefault();
        return Content(RoleName.ToString());
    }

最佳答案

您可以使用 overload 调用您的服务器方法Html.Action() 接受 Action 名称作为第一个参数,路由值作为第二个参数

@foreach(var r in user.Roles)
{
    <p>@Html.Action("GetRoleNameById", new { roleId = r.RoleId })</p>
}

关于c# - AsP.Net MVC 5 如何在 View 中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647211/

相关文章:

c# - 通过编译器生成的局部变量 : why is this failing? 隐式转换为具有可空结构的 System.Double

c# - 无法清除 ASP :Repeater 的项目

c# - 向 sender 和 e 传递更多参数?

c# - 发送时发生意外错误。传输流中的 EOF 或 0 字节

c# - Windows Phone 8.1 商店应用程序 - 商店链接

c# - "Deep"转换对象

c# - 防止 FlipView 滚动

jquery - 单击 gridview 内的链接按钮时无法触发 jquery 警报

c# - 在 ASP.NET MVC 中填充 DropDownList

ASP.NET 4 URL 路由 Web 表单破坏了我对样式、脚本、图像等的相对路径