2011-10-18 5 views
3

이 항목 article 순차적이지 않은 항목 목록을 바인딩하려고합니다.순차적 목록 바인딩이 작동하지 않음

보기 :

<%using (Html.BeginForm("Products", "Home", FormMethod.Post)) 
{ %> 
    <input type="hidden" name="products.Index" value="cold" /> 
    <input type="text" name="products[cold].Name" value="Beer" /> 
    <input type="text" name="products[cold].Price" value="7.32" /> 
    <input type="hidden" name="products.Index" value="123" /> 
    <input type="text" name="products[123].Name" value="Chips" /> 
    <input type="text" name="products[123].Price" value="2.23" /> 
    <input type="hidden" name="products.Index" value="caliente" /> 
    <input type="text" name="products[caliente].Name" value="Salsa" /> 
    <input type="text" name="products[caliente].Price" value="1.23" /> 
    <input type="submit" value="Submit" /> 
<%} %> 

의 조치 방법 :

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Products(IList<Product> products) 
{ 
    return View("Index"); 
} 

바인딩 나를 위해 작동하는 것 같다하지 않는 매개 변수 제품은 항상 널 (null)이 포함되어 있습니다. 내가 놓친 게 있니?

도움을 주신 데 대해 감사드립니다.

내가 ASP.NET MVC 1.0

+0

'% (Html.BeginForm ("Producs", "Home", FormMethod.Post))'를 사용하여 잘못된 제품을 입력했습니다. 여기에 코드를 잘못 입력 했습니까? 아니면 실제 코드가 그렇게 보이고 있습니까? 편집 : 신경 쓰지 마라. Darin이 게시 한 내용을 확인하십시오. –

+0

발견해 주셔서 감사합니다. 그게 오타입니다. 지금 편집 할 것입니다. – Lamps

답변

7

기본 모델 바인더는 ASP.NET MVC 2.0부터 비 순차적 인덱스 컬렉션을 결합 할 수 있습니다를 사용하고, 유의하시기 바랍니다. ASP.NET MVC 1.0에서는 지원되지 않습니다.

+0

감사합니다. Darin. MVC 1.0에서 이것을 달성 할 수있는 다른 방법이 있습니까? – Lamps

+0

@ User123343, 사용자 정의 모델 바인더 작성 이외의 다른 가능성은별로 없습니다. 실제로 최신 버전으로 업그레이드하는 것이 IMHO의 가장 좋은 해결책이 될 것입니다. 곧 출시 될 ASP.NET 4.0을 통해 4 세대가되고 더 많은 누락 된 기능이 누적됩니다. –

+0

도움을 주신 Darin에게 감사드립니다. 현재 업그레이드가 진행 중이므로 곧 .net 4.0으로 전환 할 예정입니다. :) – Lamps

관련 문제