Как исправить ошибку конвертации в выпадающем списке MVC2 - PullRequest
0 голосов
/ 10 февраля 2012

Я попробовал простой выпадающий список в ASP.NET MVC2, но получил ошибку ниже от tryupdatemodel.

Как это исправить, все выглядит правильно?

вид:

   <%= Html.DropDownList("Post24DeliveryPlaces", Model.DeliveryPlace)%>

Модель:

public IEnumerable<SelectListItem> Post24DeliveryPlaces { get; set; }

public string DeliveryPlace { get; set; }

результат:

System.InvalidOperationException: The parameter conversion from type 'System.String' to type 'System.Web.Mvc.SelectListItem' failed because no type converter can convert between these types.  

at System.Web.Mvc.ValueProviderResult.ConvertSimpleType(CultureInfo culture, Object value, Type destinationType)  

 at System.Web.Mvc.ValueProviderResult.UnwrapPossibleArrayType(CultureInfo culture, Object value, Type destinationType)  

at System.Web.Mvc.ValueProviderResult.ConvertTo(Type type, CultureInfo culture)   at System.Web.Mvc.DefaultModelBinder.ConvertProviderResult(ModelStateDictionary modelState, String modelStateKey, ValueProviderResult valueProviderResult, Type destinationType

1 Ответ

1 голос
/ 10 февраля 2012

Проблема в том, что ваш html-ввод называется Post24DeliveryPlaces, и он пытается привязать к нему одну строку.

Данные поста выглядят так:

POST
{
    Post24DeliveryPlaces = (string)
}

Однако,в вашей модели Post24DeliveryPlaces является IEnumerable, и он не может преобразовать строку в SelectListItem.

Html.DropDownList принимает имя поля в качестве первого параметра.Попробуйте изменить это, указав в качестве второго параметра список мест доставки.

Html.DropDownList("DeliveryPlace", Model.Post24DeliveryPlaces)

Это сгенерирует HTML

<select name="DeliveryPlace">
    <option value="..">....</option>
    ....
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...