Entity framework 谢谢你的建议。。汽车制造商。。解决了我的问题。简言之,是的,有更好的方法。WebApi内置了javascript序列化,因此不需要使用JsonConvert。但是,您不希望直接从控制器返回实体。返回ApiModels(如MVC中的ViewModels)。您
Entity framework 谢谢你的建议。。汽车制造商。。解决了我的问题。简言之,是的,有更好的方法。WebApi内置了javascript序列化,因此不需要使用JsonConvert。但是,您不希望直接从控制器返回实体。返回ApiModels(如MVC中的ViewModels)。您,entity-framework,jquery,asp.net-web-api,crud,Entity Framework,Jquery,Asp.net Web Api,Crud,谢谢你的建议。。汽车制造商。。解决了我的问题。简言之,是的,有更好的方法。WebApi内置了javascript序列化,因此不需要使用JsonConvert。但是,您不希望直接从控制器返回实体。返回ApiModels(如MVC中的ViewModels)。您可以使用AutoMapper使这更容易,但您不必这样做。有关更多信息,请参阅我的更新答案: protected void Application_Start(object sender, EventArgs e) {
谢谢你的建议。。汽车制造商。。解决了我的问题。简言之,是的,有更好的方法。WebApi内置了javascript序列化,因此不需要使用JsonConvert。但是,您不希望直接从控制器返回实体。返回ApiModels(如MVC中的ViewModels)。您可以使用AutoMapper使这更容易,但您不必这样做。有关更多信息,请参阅我的更新答案:
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}", // browse with localhost:7031/api/product
//routeTemplate: "{controller}/{id}", // browse with localhost:7031/product
defaults: new { id = System.Web.Http.RouteParameter.Optional }
);
public class ProductController : ApiController
{
NorthwindEntities db = new NorthwindEntities();
public List<Product> GetAll()
{
return db.Products.ToList<Product>();// ;
}
<script src="Script/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$('#<%= cviewproduct.ClientID %>').click(function (e) {
getProducts();
e.preventDefault();
});
});
function getProducts() {
$.getJSON("/api/product",
function (data) {
$.each(data, function (key, val) {
//var str = val.ProductName;
// alert(str);
var row = '<tr> <td>' + val.ProductName + '</td><td>' + val.ProductID + '</td><tr/>';
$(row).appendTo($('#tblproduct'));
});
});
}
</script>
public class ProductApiModel
{
public int ProductId { get; set; }
public string ProductName { get; set; }
}
public class ProductController : ApiController
{
public IEnumerable<ProductApiModel> GetAll()
{
var products = db.Products
.OrderBy(x => x.ProductID)
.Select(x => new ProductApiModel
{
ProductId = x.ProductID,
ProductName = x.ProductName
});
return products;
}
}
public class ProductController : ApiController
{
public IEnumerable<ProductApiModel> GetAll()
{
var entities = db.Products.OrderBy(x => x.ProductID);
var models = Mapper.Map<ProductApiModel[]>(entities);
return models;
}
}
public class ProductController : ApiController
{
NorthwindEntities db = new NorthwindEntities();
public List<Product> GetAll()
{
return db.Products.ToList<Product>();// ;
}
public class ProductController : ApiController
{
public string GetAll()
{
var product = db.Products.OrderBy(x => x.ProductID).Select(x => new
{
ProductId = x.ProductID,
ProductName = x.ProductName
});
return JsonConvert.SerializeObject(product);
}
function getProducts() {
$.getJSON("/api/product",
function (data) {
$.each(data, function (key, val) {
var row = '<tr> <td>' + val.ProductName
+ '</td><td>' + val.ProductID + '</td><tr/>';
$(row).appendTo($('#tblproduct'));
});
});
$.getJSON("/api/product",
function (data) {
var obj = $.parseJSON(data);
$.each(obj, function (key, val) {
var row = '<tr> <td>' + val.ProductId
+ '</td><td>' + val.ProductName + '</td><tr/>';
$(row).appendTo($('#tblproduct'));
});
});
{
public class ProductApi
{
[Key]
public Int32 ProductID { get; set; }
public string ProductName { get; set; }
}
}
public IEnumerable<ProductApi> getall()
{
Mapper.CreateMap<Product, ProductApi>();
var entities = db.Products.OrderBy(x => x.ProductID).ToList();
var models = Mapper.Map<ProductApi[]>(entities);
return models;
}
public List<ProductApi> GetAll()
{
var products = db.Products
.OrderBy(x => x.ProductID)
.Select(x => new ProductApi
{
ProductID = x.ProductID,
ProductName = x.ProductName
}).ToList();
return products;
}
function getProducts() {
$.getJSON("/api/product",
function (data) {
$.each(data, function (key, val) {
var row = '<tr> <td>' + val.ProductName + '</td><td>' + val.ProductID + '</td><tr/>';
$(row).appendTo($('#tblproduct'));
});
});
}