我创建了一个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中的脚本,但我无法找到我做错的地方。有什么想法吗?
EDITED: 如果我添加console.log(数据),我可以看到数据包含用户列表。
答案 0 :(得分:3)
试试这个:
将您的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>
}
$。每个都需要回调函数中的两个参数:数组的索引和实际的数据对象本身:
回调类型:Function(Integer indexInArray,Object value) 将在每个对象上执行的函数。
答案 1 :(得分:0)
假设用户有姓名&#39;属性,试试这段代码
$.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>');
});
});