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!!!"); } }); });
您还可以在呼叫配置中设置内容类型