Я получил следующий фрагмент кода
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. Когда я проверил с помощью инспектора сети Chrome, запрос saveProduct показал, что данные верны.
{ "Name": "AA" }
Этот запрос POST не ответил. Поэтому я не знаю, откуда появилась ошибка синтаксического анализа. Я попытался использовать браузер FireFox. то же самое произошло.
Может кто-нибудь дать некоторое представление о том, что не так?
Спасибо,
P.S. Вот код контроллера
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();
}
}
}
}