我有一个视图页面,users.cshtml.我有一个JsonResult动作方法,jsongetusers()返回json格式的用户列表.
在users.cshtml页面加载后,我想得到用户列表,构建一个表并显示它.使用Razor的ASP.Net MVC中最好的方法是什么?我对MVC3和Razor很新.我最初的想法是循环遍历json结果,并使用javascript / jquery构建一个表并将其附加到DOM.但是我猜想这样做一定要有更好的方法吗?
谢谢.
解决方法
正如Mystere Man所建议的那样,先获得一个视图,然后再次进行ajax调用,以获得json结果在这种情况下是不必要的.那是对服务器的2个调用.我想你可以在第一次调用中直接返回用户的HTML表.
我们将这样做.我们将有一个强类型的视图,它会将用户列表的标记返回到浏览器,并且这个数据由我们将使用http请求从我们的浏览器调用的动作方法提供.
public class Userviewmodel { public int UserID { set;get;} public string FirstName { set;get;} //add remaining properties as per your requirement }
public class UserController : Controller { [HttpGet] public ActionResult List() { List<Userviewmodel> objList=UserService.GetUsers(); // this method should returns list of Users return View("users",objList) } }
假设UserService.GetUsers()方法将返回一个Userviewmodel对象的列表,该对象表示数据源(表)中的用户列表,
并在您的users.cshtml(位于Views / User文件夹下),
@model List<Userviewmodel> <table> @foreach(Userviewmodel objUser in Model) { <tr> <td>@objUser.UserId.ToString()</td> <td>@objUser.FirstName</td> </tr> } </table>