POST не принимает параметр int - PullRequest
0 голосов
/ 28 сентября 2011

У меня проблема с ASP.NET MVC3.

Я пытаюсь опубликовать некоторые параметры в действии JSONResult. Он прекрасно работает, когда я использую GET, но когда я использую POST, я получаю ошибку, потому что, очевидно, при использовании POST он не примет мои целочисленные параметры как таковые и скажет, что словарь параметров содержит для них нулевое значение.

Кто-нибудь сталкивался с этим раньше? Спасибо.

Редактировать: какой-то код в соответствии с просьбой:

public JSONResult PostingHere(string username, int someotherparameter) {
    //Code   
}

Действительно, это все, что имеет значение, потому что исключение выдается тут и там при POSTing, потому что, по-видимому, нулевое значение передается параметру someotherparameter. При использовании GET, как уже было сказано, он работает просто отлично.

Предполагается использовать для публикации NSURLRequest с iPhone, но я отлаживал с расширением Firefox под названием Poster , и я получаю тот же результат. Полная ошибка:

Словарь параметров содержит пустую запись для параметра 'someotherparameter' необнуляемого типа 'System.Int16' для метода 'System.Web.Mvc.JsonResult PostingHere (System.String, Int16)'

Редактировать 2: По запросу я добавлю пример вызова действия, которое приводит к ошибке:

<form action="http://fullurlhere.com/Controller/PostingHere" method="POST">
<input type="hidden" name="userid" value="astring" />
<input type="hidden" name="someotherparameter" value="100" />
<input type="submit" value="Brace for impact" />
</form>

Редактировать 3: почтовые данные; не берите в голову несоответствие в именах переменных, это их настоящие имена.

Result of the Post

Редактировать 4: В дополнение к загадке, проблема исчезает при тестировании на локальном сервере на моем собственном компьютере с тем же проектом MVC, на котором работает сервер. Таким образом, проблема, скорее всего, в настройках на стороне сервера.

Решено: Оказывается, когда я оценивал запрос, сервер перенаправлял меня на https: // из http://,, в результате чего я терял свои POST-данные. Спасибо всем за такой хороший спорт.

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Решено: Оказывается, когда я оценивал запрос, сервер перенаправлял меня на https: // из http://,, из-за чего я терял свои POST-данные.Спасибо всем за такой хороший спорт.

0 голосов
/ 28 сентября 2011

попробуй

public JSONResult PostingHere(string username, int? someotherparameter) {
    //Code   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...