1
내 시나리오가 복잡하므로 아래 예제를 사용하여 간단하게 만들었습니다. 가장 큰 문제는 Html.TextBoxFor(t => t.List[0].Name)
이 아닌 Html.TextBox("List[0].Name")
과 같은 속성 경로를 지정하는 모델의 바인딩 속성 바인딩입니다. 그래서, 현재보기에서 나는 모델의 메타 데이터 중 일부만 알게 될 것이고 그렇게하면 이런 식으로 구성해야 할 것입니다.바인딩 모델 속성 모음
모델
public class TestController: Controller
{
[HttpGet]
public ActionResult Test()
{
var model = new ModelTest()
{
Id = 455,
Collection = new List<Foo>()
{
new Foo(){ Value1 = "sagasga", Value2 = "Beul"},
new Foo(){ Value1 = "dgdsgds", Value2 = "fhfhd" }
}
};
return View(model);
}
[HttpPost]
public ActionResult Test(ModelTest model)
{
//....
return View();
}
보기
public class ModelTest
{
public int Id {get;set;}
public List<Foo> Collection {get;set;}
}
public class Foo
{
public string Value1 {get;set;}
public string Value2 {get;set;}
}
컨트롤러 : 내가 컬렉션 값에 대한 빈 텍스트 상자를 얻을 수 위의 코드에 대한
@using (Html.BeginForm())
{
@Html.TextBox("Id")
@Html.TextBox("Collection[0].Value1")
@Html.TextBox("Collection[0].Value2")
<input type="submit" value="Add" />
}
여기에 시나리오입니다. 그러나 페이지가 제출되면 Post 메서드에서 모델이 올바르게 작성됩니다.
많은 감사, 알렉스