Посмотрите, что ваш серверный код выводит в браузер. Звучит так:
@EnumHkStatus.Cleaning
выводит это:
Cleaning
Что не понимается в коде JavaScript. (Это то, о чем конкретно говорит ошибка.) Для вашего кода JavaScript вы, вероятно, захотите, чтобы это была строка:
'@EnumHkStatus.Cleaning'
или int:
@((int)EnumHkStatus.Cleaning)
(Какой из них зависит от вас. Возможно, вы захотите протестировать оба, я не уверен, что связыватель модели может автоматически преобразовать один или оба из них обратно в значение enum
.) Так что в конечном итоге ваш вызов POST будет по крайней мере содержать действительный код. Например:
$.post("@Url.Action("SetStatus", "ReceptionHk")", { id: $(this).data("id"), newStatus: @((int)EnumHkStatus.Cleaning) });
выведет что-то вроде:
$.post("/ReceptionHk/SetStatus", { id: $(this).data("id"), newStatus: 3 });
Вам может затем нужно обновить действие SetStatus
, чтобы принять int
или string
(в зависимости от того, что вы выбрали), если только привязка модели не может преобразоваться в соответствующий enum
для вас , Вы хотите проверить это. Если вам нужно изменить сигнатуру метода, просто преобразуйте ее обратно в соответствующий enum
в начале метода действия.
Примечание: Вы , вероятно, хотите иметь некоторый код для обработки ответа AJAX, если только по какой-либо другой причине, кроме проверки успешности / неудачи операции.