使用API和MVC4显示所有模型

本文关键字:模型 显示 MVC4 API 使用 | 更新日期: 2023-09-27 18:17:32

我创建了一个API应用程序,可以在其中执行crud操作。但是,我无法在我的cshtml中显示所有模型。我创建了我的API控制器,它有getAllUsers方法在我的主控制器中,我只调用索引视图。在我看来,我有一个调用getAllUsers方法的脚本。下面是我的代码:API控制器:

namespace WebApiQues.Controllers
{
    public class UserController : ApiController
    {
        private WebApiQuesEntities db = new WebApiQuesEntities();
        //Get all users
        public IEnumerable<User> GetAllUsers()
        {
            var UserList = from s in db.Users
                           orderby s.Id
                            select s;
            return UserList;
        }
}

控制器:

 public class HomeController : Controller
{
    //
    // GET: /Home/
    public UserController userController = new UserController();
    public ActionResult Index()
    {
        //var UserList = userController.GetAllUsers();
        //ViewBag.UserList = UserList;
        return View();
    }
}

Index.cshtml:

@{
ViewBag.Title = "Index";
}
@model IEnumerable<WebApiQues.Models.User>
<div>
  <div>
    <h2>All Products</h2>
    <ul id="products" />
  </div>
  </div>
  <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.min.js"></script>
  <script type="text/javascript">
      var uri = 'api/user/getallusers';
      $(document).ready(function () {
          // Send an AJAX request
          $.getJSON(uri)
          .done(function (data) {
              // On success, 'data' contains a list of products.
              $.each(data, function (data) {
                  // Add a list item for the product.
                  $('<li>').appendTo($('#products'));
              });
          });
      });
</script>

我相信这个问题来自cshtml的脚本,但我找不到我做错的地方。任何想法?

编辑:如果我添加console.log(data),我可以看到data有用户列表。

使用API和MVC4显示所有模型

try this:

添加你的jquery脚本到scripts section:

@section scripts
{
 <script type="text/javascript">
     $(function() {
         var uri = 'api/user/getallusers';
         $.getJSON(uri, function(data) {
             $.each(data, function(index, v) {
                 $('#products').append('<li>'+v.PropertyName+'</li>'); 
                 //Change property name to the property of your object
             });
         });
     });
 </script>
}

$。每个回调函数都需要两个参数:数组的索引和实际的数据对象本身:

callback类型:Function(Integer indexInArray, Object value将在每个对象上执行的函数。

http://api.jquery.com/jquery.each/

假设用户有'Name'属性,试试下面的代码

$.getJSON(uri)
          .done(function (data) {
              // On success, 'data' contains a list of products.
              $.each(data, function (data) {
                  // Add a list item for the product.                  
                  $('#products').append('<li>'+data.Name+'</li>');
              });
          });