2012-02-09 5 views
0

ASP.NET MVC2에서 간단한 드롭 다운리스트를 시도했지만 tryupdatemodel에서 오류가 발생했습니다.MVC2 드롭 다운리스트의 변환 오류를 해결하는 방법

어떻게 수정해야합니까?

보기 :

<%= 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

문제는 HTML 입력이 Post24DeliveryPlaces 명명되고 하나의 문자열을 결합하려고한다는 것입니다 그걸로.

POST 
{ 
    Post24DeliveryPlaces = (string) 
} 

그러나 모델에, Post24DeliveryPlaces이는 IEnumerable을이며 SelectListItem에 문자열로 변환 할 수 없습니다 :

포스트 데이터는 다음과 같이 찾고 있습니다.

Html.DropDownList은 첫 번째 매개 변수로 필드 이름을 사용합니다. 이 위치로 변경하여 납품 장소 목록을 두 번째 매개 변수로 지정하십시오.

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

이것은 HTML을

<select name="DeliveryPlace"> 
    <option value="..">....</option> 
    .... 
</select> 
를 생성합니다
관련 문제