2009-12-08 2 views
1

MVC 뷰로 출력 할 데이터 집합이있는 상황입니다. 제출을 마친 후에 모델 바인더를 다시 가져 오는 방법을 알아 내려고 정말 고심하고 있습니다. 나는 이런 것을 가지고있다. ...ASP.NET MVC 1 : DataSet ModelBinding

public ActionResult TestData() 
{ 
    DataSet data = new DataSet("DS"); 

    DataTable table = new DataTable("DT"); 
    data.Tables.Add(table); 

    table.Columns.Add("ID", typeof (int)); 
    table.Columns.Add("Name", typeof (string)); 

    table.Rows.Add(1, "John"); 
    table.Rows.Add(2, "Mark"); 
    table.Rows.Add(3, "Paul"); 
    table.Rows.Add(4, "Chris"); 

    return View(data); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult TestData(DataSet data) 
{ 
    return View(data); 
} 

페이지에서 나는 입력 요소에 대해 많은 명명 체계를 시도했지만 아무 소용이 없다. 이것도 가능합니다. 가능한 경우 뷰 모델 유형을 사용하지만 불행히도 이것은 완전히 동적 인 구조이며 데이터 집합은 가장 자연스러운 용도입니다.

답변

2

나라면 모든 행이 같은 이름 속성을 가진 숨겨진 필드로 직렬화됩니다. 아마도

<input type="hidden" name="dsRows" value="[id]_[name]" /> 

두 번째 작업 (POST를 허용하는 작업)에서는 매개 변수로 문자열 []을 사용하십시오. 그런 다음 작은 LINQ 쿼리 또는 뭔가를 사용하여 배열을 데이터 집합으로 "폭발"시킬 수 있습니다.

(참고 : 특별히 테스트하지는 않았지만 여러 번 전략을 사용했습니다.)

+0

제안 해 주셔서 감사합니다. 이것 (또는 그것과 같은 옵션)은가는 길인 것 같습니다. 나는 바닐라를 사용하기보다는 오히려 더 친숙한 뭔가로 나의 데이터 세트를 얻으려고 노력할 것이라고 생각한다. –

관련 문제