使用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有用户列表。
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>
}
$。每个回调函数都需要两个参数:数组的索引和实际的数据对象本身:
http://api.jquery.com/jquery.each/callback类型:Function(Integer indexInArray, Object value将在每个对象上执行的函数。
假设用户有'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>');
});
});