0

簡単なアプリケーションを作成しようとしていますが、ビューを正しく記述できないため、同じビューで別のテーブルを使用できます。

Sales と SalesLine の 2 つのテーブルがあります。各セールには多くのセールスラインがあります。私がやろうとしているのは、セールを追加し、同じページに別のセールスラインを追加することです。C# コードでは、各 Sale オブジェクトに SalesLines の EntitySet があります。

新しいセールを追加する 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 と SalesLines の両方を入力して追加できます。自動的に表示されるデフォルトの SalesLine をここに配置しようとしています。次に、必要に応じて AJAX を使用して他の SalesLines を追加するために使用できるリンクを配置しようとしています (少なくとも私にとっては、Java の方が簡単であることはわかっています)。

4

1 に答える 1

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);

}

あなたのビューは、このビューモデルに厳密に型付けされます。

@model SalesViewModel 

@Model.Sale.Id
/// remaining form elements
于 2012-05-15T17:13:56.900 に答える