2009-12-11 13 views
1

castl 같은 다른 모델 바인더를 사용하여 솔루션을 볼 수 있지만 폼을 게시 할 때 기본 기본 모델 바인더 중첩 된 복잡한 개체를 지원하는지 몰라 복잡한 개체를 게시 할 수 있습니다. 컨트롤러에.asp.net mvc

+0

BTW @oo, 나는 당신이 공개적으로 자식 개체를 드러내지 않을 수도 있기 때문에 귀하의 개체가 null로 나타나고 있다고 생각합니다. 몇 분 전에 몇 가지 테스트를 실행했을 때 같은 문제가 있었고 deliberatley는 자식 개체를 비공개로 설정했습니다. 그건 당신의 null 값을 설명 할 수 있습니다. – griegs

답변

2

귀하의 질문을 이해할 수 있다고 생각합니다.

내 필드의 이름에서 나는 속성 이름뿐만 아니라 개체도 넣었습니다.

그래서 "Person"이라는 "Person"개체에 "State"필드가 들어있는 "Address"개체가 포함되어있는 경우 "Person.Address.State"라는 이름으로 내 컨트롤러에서 문제가 해결되는 것 같습니다. .

<%= Html.TextBox("Person.Address.State", Person.Address.State.... 

이 질문에 대한 대답은 무엇입니까?

편집

이 작업을 수행하고 여기가 작동하도록하는 코드입니다.

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<DoMyWork.Controllers.testParent>" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    ViewUserControl1 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 

    <h2>ViewUserControl1</h2> 

    <% using(Html.BeginForm()){ %> 
     <%= Html.TextBox("test.value", Model.test.value) %> 
     <input type="submit" value="sdf" /> 
    <%} %> 

</asp:Content> 
+0

나는 내 질문을 이해한다고 생각하지만 이것은 효과가없는 것 같다. 복합 object는 항상 null를 표시합니다. . – leora

+0

그래, 나는 downvote가 좀 이상하다고 생각했다. 고마워요. 제이. – griegs

+0

+1 당신이 이것을 할 수 있다는 것을 깨닫지도 못했습니다. 이것은 MVC2 기능입니까, 아니면 원래 MVC1 릴리스입니까? – Jay

0

namespace DoMyWork.Controllers 
{ 
    public class test 
    { 
     public string value { get; set; } 
    } 

    public class testParent 
    { 
     public test test { get; set; } 
    } 

    public class SearchController : Controller 
    { 
     public ActionResult ViewUserControl1(testParent test) 
     { 
      UpdateModel(test); 

      return View(test); 
     } 

SNIP는 저도 같은 문제를 겪고 난 해결이 사람들의 많은 도움이 비슷한 질문을 발견 : Complex object and model binder ASP.NET MVC을하지만, 내 문제가 해결되지 않았다.

여기에서 볼 수 있듯이 입력을 비활성화했기 때문에 문제가 발생했음을 깨달았습니다. (문서 준비가 끝난 상태에서 JQuery를 사용하지 못하도록 설정했기 때문에) How do I submit disabled input in ASP.NET MVC?. 결국 비활성화 된 속성 대신 읽기 전용을 사용했습니다.