2012-05-15 2 views
0

간단한 응용 프로그램을 만들려고하지만 뷰를 올바르게 쓸 수 없어 동일한보기에서 다른 테이블을 사용할 수 있습니다.동일한보기에서 서로 다른 두 테이블 사용

두 개의 테이블 Sales 및 SalesLine이 있습니다. 각 Sale에는 많은 SalesLine이 있습니다. 제가하려는 것은 판매를 추가하는 것입니다. 동일한 페이지에 다른 SalesLines를 추가하십시오. C# 코드에서 각 Sale 개체에는 SalesLines의 EntitySet이 있습니다.

새로운 판매를 추가하는 HTML 코드는 다음과 나는 같은 페이지에서이 페이지의 새로운 SalesLines를 추가 할 수있는 방법을 데려 가고 싶다는

<% using (Html.BeginForm()) {%> 
    <%: Html.ValidationSummary(true) %> 

    <fieldset> 
     <legend>Fields</legend> 



     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.N_Factura) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.N_Factura) %> 
      <%: Html.ValidationMessageFor(model => model.N_Factura) %> 
     </div> 

     <div class="editor-label"> 
      <%: Html.LabelFor(model => model.Fecha) %> 
     </div> 
     <div class="editor-field"> 
      <%: Html.TextBoxFor(model => model.Fecha) %> 
      <%: Html.ValidationMessageFor(model => model.Fecha) %> 
     </div> 
     <div class="editor-field"> 
     <%:Html.DropDownListFor(model =>model.Proveedor,(ViewData["SelectList"] as SelectList)) %> 
      </div> 



     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 

<% } %> 

, 그래서 나는 그들을 작성하고 모두 판매를 추가 할 수 있습니다 Create 링크를 클릭하여 SalesLines를 선택하십시오. 여기에 자동으로 나타나는 기본 SalesLine을 넣으려고하고 AJAX를 사용하여 다른 SalesLine을 추가하는 데 사용할 수있는 링크를 작성하려고합니다. (적어도 Java에서는 쉽게 알 수 있습니다.)

답변

0

동일한보기의 두 테이블에서 데이터를 가져 오려면 사용자 a ViewModel을 사용하십시오. 이 뷰를 위해 특별히 사용하는 간단한 클래스입니다.

public class SalesViewModel 
{ 
    public Sales Sale { set;get;} 
    public IEnumerable<SalesLine> Detail{ set;get;} 

    public SalesViewModel() 
    { 
    if(this.Sale==null) 
     this.Sale=new Sales(); 
    if(this.Details==null) 
     this.Details=new List<Sales>(); 
    }  
} 

반환 당신의보기에

public ActionResult GetSales(int id) 
{ 
    SalesViewModel vm=new SalesViewModel(); 
    vm.Sale=dbContext.Sales.Where(x=x.Id=id); 
    vm.Details=dbContext.SalesLine.Where(x=x.SaleId=id); 

    return View(vm); 

} 

귀하의보기 stongly이 뷰 모델에 입력됩니다;

@model SalesViewModel 

@Model.Sale.Id 
/// remaining form elements 
+0

답장을 보내 주셔서 감사합니다.하지만 여전히보기의 세부 정보 목록을 참조하는 방법을 모릅니다. 새로운 판매 라인을 추가하려면 동일한보기 코드를 추가하고 싶습니다. – amal

+0

@amal : 세부 정보를 표시하려면 Model.Details 속성을 반복 할 수 있습니다. 새 항목을 추가합니다. 새 양식을 ajax를 통해 가져 오거나 "작성"양식으로 리디렉션 할 수 있습니다. – Shyju

+0

고마워요, 내가 시도하고 말할 것입니다! HTML 코드 작성을위한 asp sintaxis에 많은 문제가 있습니다. : – amal

관련 문제