Когда HttpGet выполняется в ASP.NET MVC, я заполняю текстовое поле некоторыми JSON-значениями, которые jQuery Tokeninput может использовать.
[HttpGet]
public ActionResult Edit(Guid id, bool? success)
{
Section section = _sectionRepository.LoadById(id);
var viewModel = new EditViewModel()
{
// uses the JavaScriptSerializer
ParentString = GetParentString(section.Parent),
[...]
};
return View("Edit", viewModel);
}
Эта работа, как и ожидалось.Однако если я выполняю HttpPost и моя модель недопустима, тогда значение ParentString больше не является форматом JSON.
[HttpPost]
[ValidateInput(false)]
public ActionResult Edit(Guid id, EditViewModel model)
{
if (!ModelState.IsValid)
{
model.Success = false;
var parentString = model.ParentString; // no JSON anymore
return View("Edit", model);
}
}
Итак, {"id": "e2eee66e-b0b1-4f9f-ab77-a1432da40c7d "," name ":" MyValue "} становится e2eee66e-b0b1-4f9f-ab77-a1432da40c7d | MyValue,.
После HttpPost jQuery Tokeninput больше не работает, поскольку ожидалось значение JSON.,Что может вызвать эту проблему?