AsP.Net MVC 5如何在视图中调用函数

我有ASP.Net MVC 5应用程序我想从视图中调用一个方法我该怎么办?

我的代码:

我的UsersListfunction:

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

UsersList查看:

 @foreach(var user in Model.MyUsers) {  @user.Email  @foreach(var r in user.Roles) { 

@Html.Action(GetRoleNameById(r.RoleId))

} }

和我在控制器中的function:

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

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

 @foreach(var r in user.Roles) { 

@Html.Action("GetRoleNameById", new { roleId = r.RoleId })

}

你可以通过很多方式实现这个目的,在它们上面你可以调用一个ajax来调用控制器方法。 像这样的东西

 $('#btnSave').click(function () { $.ajax({ url: "/ContollerName/GetRoleNameById" + "?RoleId=1", // change controller name here and pass proper role id. type: "GET", success: function (data) { if (data.status == "Success") { alert("Done"); } else { alert("Error occurs on the Database level!"); } }, error: function () { alert("An error has occured!!!"); } }); }); 

您还可以在呼叫配置中设置内容类型