【发布时间】:2015-10-14 09:27:51
【问题描述】:
我创建了一个 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 有用户列表。
【问题讨论】:
-
你检查过'getallusers'是否工作正常吗?我的意思是使用 Fiddler 或 PostMan
-
是的,它运作良好。如果我输入“localhost:3111/api/user/getallusers”,我会得到所有用户的列表。
-
$.getJSON(uri) 指的是'uri',它是不完整的,即它应该是localhost/api/user/getallusers.... 检查浏览器的提琴手或开发工具,看看什么 WEB API 正在形成
-
非。脚本获取的数据确实包含所有模型的列表。我刚刚更新了我的问题。
-
在我看来,您只是将一个空的
- 附加到您的产品 ul 中,但您没有在“每个”函数中使用任何“数据” - 或者您是否剥离了它部分代码出来了?
标签: c# asp.net-mvc-4 asp.net-web-api