0

我喜欢为日间交易做一个简单的控制。这需要向我展示我们今天有多少交易(关闭或打开交易),当经理点击交易数量时,我想将所有这些交易列表发送到一个漂亮的表中。但我找不到这样做的方法。甚至在整个网络上都没有。

这是我的尝试,但没有。我愿意接受建议 =)

这是我的视图模型

public class SIMcontrolsViewModel
{

    public DTControls DTransactionControl { get; set; }
}  
public class DTControls
{
    public DateTime TDate { get; set; }

    public int NumOfTransaction { get; set; }
    public List<SIMsale> SIMsaleList { get; set; }

    public DTControls()
    {
        SIMsaleList = new List<SIMsale>();
    }
}

控制器看起来像我填写了所有数据并将其发送给查看

    [AdminAuthorization]
    public ActionResult DateTransactionsControl(DateTime? date)
    {
        SIMcontrolsViewModel vm = new SIMcontrolsViewModel();
        vm.DTransactionControl = new DTControls();
        if (!date.HasValue)
            date = DateTime.Now;//.Today;
        vm.DTransactionControl.TDate = date.Value;
        try
        {
            using (CompanyContext db = new CompanyContext())
            {
                var saleLst = db.SIMsales.ToList();

                foreach (var sale in saleLst)
                {
                    if (..)
                        vm.DTransactionControl.SIMsaleList.Add(sale);

                }
                var tCount = vm.DTransactionControl.SIMsaleList.Count;
                vm.DTransactionControl.NumOfTransaction = tCount;
            }
        }
        catch (Exception ex)
        {..}
        return View(vm); 
    }

现在在我的视图中,我尝试从这里发送这个列表,@Html.ActionLink就像我们在这里看到的那样。

@model oCc.IPToGo.ViewModel.SIMcontrolsViewModel


<fieldset>
      <table border="0" class="display">
            <thead>
                <tr>            
                   <th style="width:100px">Date</th>
            <th style="width:100px">@Html.DisplayNameFor(model => model.DTransactionControl.NumOfTransaction)</th>                
        </tr>
    </thead>
    <tbody>
        <tr style="text-align: center">
            <td>@Model.DTransactionControl.TDate.ToShortDateString()</td>
            @if (Model.DTransactionControl.NumOfTransaction != 0)
            {
                <td>
                    @Html.ActionLink(Model.DTransactionControl.NumOfTransaction.ToString(), "../SIMsale/",
                                                    new { sell = Model.DTransactionControl.SIMsaleList },
                                                    new { style = "font-weight: bold; color: Highlight" })
                </td>      

            }
            else
            {
                <td style="color:red">0</td>
            }
        </tr>
    </tbody>
</table>
 </fieldset>

问题是应该得到这个列表的视图/控制器得到一个空列表。

10Q =)

4

2 回答 2

1

我会将 id 与事务计数相关联,并通过 ajax 调用将其传递回控制器

$.ajax({
 url: "@(Url.Action("Action", "Controller"))",
 type: "POST",
 cache: false,
 async: true,
 data: { id: 'associatedID' },
 success: function (result) {
     $(".Content").html(result);
 }

});

创建用于显示表格的局部视图,并在控制器上使用传递的 id 填充并返回局部视图

public PartialViewResult BuildTable(int id){
    Model model = (get results from database for id)
    return PartialView("_Partial", model);
}

然后在您的视图上放置一个带有 Content 类的 div(或任何您想调用的名称)。希望这会有所帮助。

于 2013-09-30T22:22:15.217 回答
1

您可以简单地在您的 ViewModel 和 Razor 上的 Hidden 字段上发送SIMsales条件sellerId以保留数据,并且在 pthe 函数(在您的控制器上)上只需检索SIMsales您依赖 Get 函数的所有那些。

(我知道那是两年前,但也许可以提供帮助)

于 2015-04-13T09:40:35.033 回答