2012-05-15 82 views
0

我想要做一个简单的应用程序,但我无法正确写入视图,因此我可以在同一视图中使用不同的表格。在同一视图中使用两个不同的表格

我有两个表,Sales和SalesLine。每个销售有许多销售线。我想要做的是添加一个销售,并在同一页面添加不同的销售线。在C#代码中,每个Sale对象都有一个SalesLines实体集。

的HTML代码中添加一个新售如下:

<% 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> 

<% } %> 

我想放在同一页一些方式在这个页面中添加新的SalesLines,所以我可以填补他们,并添加两个销售和SalesLines通过点击创建链接。我试图在这里放置一个自动出现的默认SalesLine,然后使用AJAX(我知道在Java中更容易,至少对我而言)可以用于添加其他SalesLines(如果需要)的链接。

回答

0

要在同一视图中从2个表中获取数据,请使用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

谢谢,我会尽力告诉你!我用asp sintaxis编写HTML代码时遇到了很多问题:s – amal

相关问题