2012-04-22 2 views
0

У меня есть этот вопрос, что я не могу понять, я отправляю данные на мой контроллер Декларация контроллер выглядит следующим образом:..Словарь содержит параметры записи нулевой»

public ActionResult Create(string Title, string Description, string Payment, string Adress, string ZIP, float Longitude, float Latitude) 

Использование Фидлер, посланные данные выглядят следующим образом

Fiddler posted data

я получаю сообщение об ошибке при отправке:

Словарь параметров содержит запись null для параметра «Долгота» типа, отличного от нуля, «System.Single» для метода «System.Web.Mvc.ActionResult Create (System.String, System.String, System.String, System.String , System.String, Single, Single) 'in' GjortWebRole.Controllers.MyController '. Необязательный параметр должен быть ссылочным типом, нулевым типом или объявлен как необязательный параметр. Имя параметра: Параметры

+0

Не могли бы вы показать нам, как вы называете этот метод действий? –

+3

Это может быть проблема с кодировкой. Какова ваша культура броузера/сервера? Является ли значение долготы '15.628' действительным числом с вашей культурой? Попытайтесь отправить '15,628' – nemesv

ответ

0

Как показано в таблице параметров, вы отправляете значение города (String) в порядке параметра долготы (флоат). Попытайтесь добавить параметр города к вашему методу действий перед параметром долготы.

public ActionResult Create(string Title, string Description, string Payment, string Adress, string ZIP,string City, float Longitude, float Latitude) 

UPDATE

в соответствии с вашими комментариями, Декларация Create метод должен быть следующим

[HttpPost] 
public ActionResult Create(FormCollection myform) 
{ 
    String Title = myform["Title"];//title is the name of html tag 
    Strign ZIP = myform["ZIP"];//ZIP is the name of html tag 
    . 
    . 
    . 
} 
+0

Действительно ли порядок? Я добавил параметр City-параметр в список аргументов метода действий, и теперь это тот же порядок, что и сообщение, но с тем же результатом:/ –

+0

, как вы называете этот метод действий? –

+0

Он вызывается через данные отправки формы, где «Мой» является контроллером, а «Создать» - это действие. '

' –

2

Как уже упоминалось в this question, MVC не приходит с ModelBinder для выплывает из коробки. Вам нужно будет создать свой собственный, если вы хотите, чтобы действия принимали аргументы float.

Смежные вопросы