我创建了一个包含2个表的视图。 我想要的是根据事务类型过滤每个表数据,例如table1应该只显示应付款管理列表,而table2应该只显示可回收列表。
这是代码 注意当我导航到视图服务器时显示我无法找到资源。其他视图都可以。这是我的代码。 我的项目有BOL(EF模型)BLL(业务对象)DAL(数据访问层)和我的主要Mvc项目
@model shinwari_traders.Areas.Shinwari.Models.ADetailsVm
@{
ViewBag.Title = "Index";
}
<h2>AccountDetails</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table id="Payables" class="table">
<tr>
<th>
Date
</th>
<th>
Discription
</th>
<th>
Amount
</th>
</tr>
@foreach (var item in Model.Payables)
{
<tr>
<td>
@item.Date
</td>
<td>
@item.Discription
</td>
<td>
@item.Amount
</td>
</tr>
}
</table>
<table id="Reciveables" class="table">
<tr>
<th>
Date
</th>
<th>
Discription
</th>
<th>
Amount
</th>
</tr>
@foreach (var item in Model.Reciveables)
{
<tr>
<td>
@item.Date
</td>
<td>
@item.Discription
</td>
<td>
@item.Amount
</td>
</tr>
}
</table>
public class AccountDetailsController : Controller
{
private TransictionBs objbs;
public AccountDetailsController()
{
objbs = new TransictionBs(int accountid);
}
// GET: Shinwari/AccountDetails
public ActionResult Index(int accountid)
{ var v= new ADetails();
v.Payable = objbs.GetALL().Where(p => p.AId==accountid&& p.tbl_TransictionType.Type.Contains("Payable"));
v.Reciveable = objbs.GetALL().Where(r => r.AId==accountid && r.tbl_TransictionType.Type.Contains("Reciveable"));
return View(v);
}
}
}
public class ADetailsVm
{
public List<BOL.tbl_Transiction> Payables { get; set; }
public List<BOL.tbl_Transiction> Reciveables { get; set; }
}
public partial class tbl_Transiction
{
public int TId { get; set; }
public Nullable<System.DateTime> Date { get; set; }
public Nullable<int> AId { get; set; }
public string Discription { get; set; }
public Nullable<double> PKR { get; set; }
public Nullable<double> Rate { get; set; }
public Nullable<double> Amount { get; set; }
public Nullable<int> TTId { get; set; }
public virtual tbl_Accounts tbl_Accounts { get; set; }
public virtual tbl_TransictionType tbl_TransictionType { get; set; }
}
答案 0 :(得分:1)
您需要一个具有2个集合属性的新视图模型,每个集合对应一个集合。
public class AccountDetailsVm
{
public List<BOL.tbl_Transiction> Reciveable {set;get;}
public List<BOL.tbl_Transiction> Payable {set;get;}
}
在您的GET操作中,创建此视图模型的对象,填充这两个属性。
public ActionResult Index(int accountid)
{
var v=new AccountDetailsVm();
//Load both the collection properties
v.Payables = objbs.GetALL()
.Where(p => p.AId==accountid && p.tbl_TransictionType.Type.Contains("Payable"));
v.Reciveable = objbs.GetByID(accountid).tbl_TransictionType.Type.Contains("Reciveable");
return View(v);
}
您的视图与新视图模型绑定。我刚才在这里添加了最小的代码。您可以将渲染转换为表格。
@model AccountDetailsVm
<h1>Reciveable</h1>
@foreach(var item in Model.Reciveable)
{
<p>@item.Amount</p>
}
<h1>Payable</h1>
@foreach(var item in Model.Payable)
{
<p>@item.Amount</p>
}