最佳答案
我得到了下面这段代码
function pushJsonData(productName) {
$.ajax({
url: "/knockout/SaveProduct",
type: "POST",
contentType: "application/json",
dataType: "json",
data: " { \"Name\" : \"AA\" } ",
async: false,
success: function () {
loadJsonData();
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus + " in pushJsonData: " + errorThrown + " " + jqXHR);
}
});
}
注意,我硬编码了数据值。数据被很好地推送到数据库中。然而,我一直得到错误
解析错误语法错误意外输入结束
我确信我的数据是正确的 JSON 语法。当我在 Network of Chrome 检查器上检查的时候,saveProduct 请求显示数据是正确的。
{ "Name": "AA" }
此 POST 请求没有响应。所以我不知道解析错误是从哪里来的。我试过用火狐浏览器。同样的事情发生了。
有人能告诉我出了什么问题吗?
谢谢,
附言。 这是控制器代码
namespace MvcApplJSON.Controllers
{
public class KnockoutController : Controller
{
//
// GET: /Knockout/
public ActionResult Index()
{
return View();
}
[HttpGet]
public JsonResult GetProductList()
{
var model = new List<Product>();
try
{
using (var db = new KOEntities())
{
var product = from p in db.Products orderby p.Name select p;
model = product.ToList();
}
}
catch (Exception ex)
{ throw ex; }
return Json(model, JsonRequestBehavior.AllowGet);
}
[HttpPost]
public void SaveProduct (Product product)
{
using (var db = new KOEntities())
{
db.Products.Add(new Product { Name = product.Name, DateCreated = DateTime.Now });
db.SaveChanges();
}
}
}
}