2012-02-29 3 views
0

죄송합니다, 신경 쓰지 마세요. 나는 어리 석다> <이었고 수업 시간에 getter/setter가 없었고 잘못된 방식으로 일을하고 있다는 생각에 너무 매달 렸습니다.viewmodels 내의 MVC3 ASP.NET 객체?

도움을 주신 모든 분들께 감사드립니다. :)

내 컨트롤러에서 내보기에보기 모델을 전달하려고합니다. 문자열/ints 등 간단한 것들을 포함하는 기본적인 ViewModel 작업이 있지만 지금은 내 뷰 모델 내에서 개체를 전달하고 싶습니다. 뷰 모델을 적절히 변경하여이 객체를 포함하게했지만 내보기에서 데이터를 검색하는 데 어려움을 겪고 있습니다.

편집 :

죄송합니다.

여기에 전체 일이 :

보기
public class StockTakeViewModel 
{ 
    PartsViewData partsViewData = new PartsViewData(); 

    public StockTakeViewModel(PartsViewData PartsViewData) 
    { 
     partsViewData = PartsViewData; 
    } 
} 

public class PartsViewData 
{ 
    public string PartNum { get; set; } 
    public string Issue { get; set; } 
    public string Location { get; set; } 
    public string BinCode { get; set; } 
    public decimal StockQty { get; set; } 

    public PartsViewData() 
    { 
    } 
} 


public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     PartsViewData partsViewData = new PartsViewData(); 

     partsViewData.PartNum = "Part Num Test"; 
     partsViewData.Issue = "Issue Test"; 
     partsViewData.BinCode = "Bin Code Test"; 
     partsViewData.Location = "Location Test"; 
     partsViewData.StockQty = 0; 

     StockTakeViewModel stockTakeViewModel = new StockTakeViewModel(partsViewData); 

     return View(stockTakeViewModel); 
    } 
} 

:

@Model.StockTakeViewModel.PartsViewData.PartNum 

그러나 StockTakeViewModel : 나는 부분이 같은 데이터를 볼에 액세스하려면 여기에서 그래서

@model StockTake.Controllers.StockTakeViewModel 

기대하고 있습니다

나타나지도 않는다.

감사합니다.

@Model.PartsViewData.PartNum 

당신이 모델은 View(...)에 전달하는 개체를,하지만 당신은 아마도 모델에 전달 된 형식의 이름을 기반으로 어떻게 든 감싸된다는 가정을 (Model.StockTakeViewModel.PartsViewData.PartNum를 호출 :

+0

뷰 모델에 대한 코드를 게시 할 수 있습니까? – Umair

+0

viewmodel에 대한 코드를 보여주십시오 – archil

+1

저는 여러분의 모델이 컨트롤러 폴더에 있지만 그 모델에 대한 코드를 게시 해두면 조금 걱정됩니다. – Lazarus

답변

0

이 시도 View(...)).

보기에 @typeof(Model).Name을 추가하면 StockTakeViewModel이 표시됩니다.

0
은 당신의 StockTakeViewModel을 변경

: 당신은 당신의 ViewModel의 공용 속성으로 partsViewData을 선언해야

public class StockTakeViewModel 
{ 
    PartsViewData partsViewData = new PartsViewData(); 
    public PartsViewData PartsViewData 
    { 
     return this.partsViewData; 
    } 

    public StockTakeViewModel(PartsViewData PartsViewData) 
    { 
     partsViewData = PartsViewData; 
    } 
} 
-1

완전히 내가 것입니다 설명하지만 이후 내가 당신의 질문에 대답 할 수없는 있지만 모델을 Controllers 폴더/네임 스페이스에 저장 했으므로 ASP.NET MVC 템플릿에 의해 정의 된 명확한 분리 문제를 위반하는 것입니다. 실험을 위해 올바른 구성 요소로 구성 요소를 분리/구성하면 가독성이 향상되고 앱 구조가 이해됩니다.

+0

삭제 된 상태로 유지해야합니다. – Blindy