获取视图

时间:2016-01-19 11:13:28

标签: asp.net-mvc-4

固定  我想要做的是一个包含帐户列表的视图,通过点击它应该打开的任何帐户名称选择accablentid Payablerecords和Reciveablerecords。注意:应付款管理系统和应收款管理系统是从同一个DataModel tbl_Transaction(即集合)获取的两个属性。所以我可以获得集合的ID吗?

我在Payable视图中获取了Selected AccountID记录,但是我无法在Reciveable视图中获得相同的id相关记录.PLZ帮助我。 这是代码。

     public class AccountsController : Controller
    {
        private AccountBs objBs;
        public AccountsController() 
        {
            objBs = new AccountBs();
        }
        // GET: Shinwari/Accounts
        public ActionResult Index()
        {
            var accounts = objBs.GetALL();
            return View(accounts);
        }

    <%=@model IEnumerable<BOL.tbl_Accounts>

    @{
        ViewBag.Title = "Index";
    }

    <h2>Accounts</h2>

    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table class="table">
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Name)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Contact)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.Discription)
            </th>
            <th></th>
        </tr>

    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.ActionLink(item.Name, "Index", "AccountDetailPayable", new {accountid=item.AId },null)
                @*@Html.DisplayFor(modelItem => item.Name)*@
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Contact)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Discription)
            </td>
    }
</table>%>

ReciveableAndPayablecontroller

private TransictionBs objbs;
public Details() 
{
    objbs = new TransictionBs();
}
// GET: Shinwari/AccountDetails
[HttpGet]
public ActionResult Index(int accountid)
{
    ADetailsVm v = new ADetailsVm();
    //Load both the collection properties
    v.Payables = objbs.GetALL().Where(p => p.AId == accountid && p.tbl_TransictionType.Type.Contains("Payable")).ToList();
    v.Reciveables = objbs.GetALL().Where(r => r.AId==accountid && r.tbl_TransictionType.Type.Contains("Reciveable")).ToList();

    return View(v);

教职员

@model BOL1.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.TDiscription
            </td>
            <td>
                @item.Amount
            </td>
        </tr>
    }

</table>

**注意应付款和可转让两种观点相同**

2 个答案:

答案 0 :(得分:0)

要像创建新模型类所需的2个不同属性一样使用相同的表,在我的例子中它如下所示。

    public ADetailsVm
{
List<tbl_Transiction>Payables{get;set;}
List<tbl_Transiction>Reciveables{get;set;}
}

然后将以下类添加到DBContext类...它就像

public DbSet<ADetailsVm>ADetailsVm{get;set;}

答案 1 :(得分:0)

您必须创建一个新类,您需要添加两个列表,如下所示。

           public NewClass
{
List<tbl_Transiction>Payables{get;set;}
List<tbl_Transiction>Reciveables{get;set;}
}

并将类添加到DbContext类中,如下所示。

public DbSet<NewClass>PayablesAndReceiveables{get;set;}

将新创建的列表对象循环到View中您需要的位置。