Как запретить MVC использовать свойство JSON? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть анонимно доступное действие. Это действие использует id и id2, чтобы передать его соответствующему расширению. id = имя расширения, а id2 - действие расширения. Это общая система, мы должны создавать расширения и позволять им выполнять анонимно доступные действия. Это также означает, что тело запроса может содержать что угодно.

[Anoniem]
[NoCache]
public ActionResult Feedback(string id, string id2)
{
  return InternalPerformOrFeedback(id, id2, null, null);
}

Пример полного URL-адреса обратной передачи:

Appname/Area/Controller/Action/Id/Id2
https://example.com/App/MW/Ext/Feedback/DigitaalOndertekenen/Feedback

Если URL вызывается без каких-либо данных JSON, MVC отлично берет id и id2 из URL и связывает их с параметрами.

Теперь, когда URL вызывается с данными JSON, MVC, кажется, связывает свойство JSON "Id" с идентификатором параметра, а не извлекает его из URL.

Я попытался добавить аннотацию [FromUri], но это не дало мне правильных результатов.

Есть идеи, как запретить MVC использовать тело запроса для привязки параметров?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете четко указать ожидаемый маршрут с этим атрибутом:

[HttpRoute("feedback/{id1}/{id2}")]

Вы также можете указать, что этот метод принимает запрос Get только с:

[HttpGet]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...