얼마 전, 내보기에서 사전 데이터를 내 컨트롤러로 전달하려고했습니다. 그리고 인터넷에서 인터넷 검색을 한 후 그렇게 할 수있었습니다 (Scott Hanselman의 게시물 중 하나임을 기억하십시오). 내가 가진 해결책은 비슷했다.보기에서 컨트롤러로 사전 데이터 전달
<%for(int index=0; index<Model.Count(); index++){
var property= Model.ElementAt(index);%>
<input type="hidden" name="<%="properties["+index+"].Key"%>"/>
<input type="hidden" name="<%="properties["+index+"].Value"%>"/>
<%}%>
public ActionResult Process(IDictionary<string,string> properties)
{
doSomething();
return View();
}
잠시 동안 코드가 작동했다가 리팩터링을하고이 코드 조각을 제거했다. 오늘 나는 사전을 다시 전달하고자하는 상황에 처했습니다. 그러나 아무리 노력해도, 의 속성은 액션에 의해 항상 수신되었습니다. 위의 코드를 사용해 보았습니다.
<%for(int index=0; index<Model.Count(); index++){
var property= Model.ElementAt(index);%>
<input type="hidden" name="<%="properties.Keys["+index+"]"%>"/>
<input type="hidden" name="<%="properties.Values["+index+"]"%>"/>
<%}%>
어느 코드도 작동하지 않았습니다. 나는 다시 googled 그러나 나를 도왔던 지위를 발견 할 수 없었다. 누군가 내가 잘못한 것을 지적 할 수 있습니까? 대단히 감사합니다.
업데이트 : 생성 된 html 코드에 지속적인 증분 인덱스가 없기 때문에 문제가 발생한 것으로 나타났습니다. 예를 들어, 속성 [0], 속성 [1], 속성 [3] ... (속성 [2]가 누락되었습니다). 이런 종류의 문제가 발생하면 방화범이 가장 친한 친구가 될 것입니다.
당신이 렌더링 된 HTML과 모델 클래스를 보여줄 수 시도 할 수 있습니다? –