На моей стороне клиента я имею Ajax вызов, как показано ниже:JsonResults возвращает значение Enum вместо представления Струнного
$.ajax({
url: "Controller/ListResult",
type: 'POST',
contentType: "application/json;charset=utf-8",
data: JSON.stringify({
Id: ObjectId,
SessionKey: sessionManager.getSessionKey()
}),
dataType: "json",
success: function (result) {
var test = results;
}
}
});
В контроллере у меня есть метод, как это:
[HttpPost]
public JsonResult ListResult(string Id, string SessionKey)
{
IBl biz = new BL();
var result = biz.GetResults(Id,SessionKey);
return Json(result);
}
Проблема заключается в том, что результат, который возвращает контроллер - это объект, который имеет несколько объектов Enum (с их строковым представлением как значение) , Однако, когда он достигает успехаФункция в вызове ajax, перечисления больше не являются строковым представлением, и вместо этого они каким-то образом были преобразованы в их значения int. Как я могу избежать этого? и сохраните строковое представление на стороне javascript.
Что такое 'sessionManager.getSessionKey()'? –
@StephenMuecke, это внутренняя функция для извлечения сеанса, но это ничего не должно влиять. Потому что он работает так, как ожидалось. – Benjamin
Вам нужно будет создать анонимный объект для представления ваших данных и использовать 'ToString()' для свойств перечисления ('JavascriptSerializer' сериализует перечисления на их числовые значения, а не их строковое представление) –