0
A
回答
0
我會什麼,我認爲你把裂縫是後,這是具有形狀+結果在同一頁上。我最近遇到了這個問題,我需要這種模式,並且增加了兩種方法(表單和表單+結果)所需的複雜性。不是GET和POST。以下是我做的:
控制器方法:
// GET: /Reports/Refund
public ActionResult Refunds()
{
var refundVM = new RefundCheckReportViewModel();
return View(refundVM);
}
// GET: /Reports/Refund
public ActionResult RefundsResult(RefundCheckReportViewModel refundVM)
{
string errorMsg;
var ready = refundVM.IsReadyToRun(out errorMsg);
if (!ready)
ModelState.AddModelError("StartDate", errorMsg);
else
refundVM.LoadReportData(); // this method on the ViewModel fetches the report data.
return View("Refunds", refundVM);
}
查看在剃刀,其持有的形式,再加上表中報告的結果:
@model MembershipCenter.ViewModels.Report.RefundCheckReportViewModel
@{
ViewBag.Title = "Refunds";
}
<div class="formStandard">
@using (Html.BeginForm("RefundsResult", "Reports", FormMethod.Get))
{
<div class="fsHeader">
<span class="reqLabel"><a class="req">*</a>required field</span>
<strong>Refund Check Report</strong>
</div>
<div class="fsBlock">
<div class="text">Date Range: <a class="req">*</a></div>
<div class="elem">
<span class="dateRangePicker">
From: @Html.TextBoxFor(model => model.StartDate, new { @class = "short datepicker" })
To: @Html.TextBoxFor(model => model.EndDate, new { @class = "short datepicker" })
@Html.ValidationMessageFor(model => model.StartDate)
</span>
</div>
</div>
<div class="fsFinalActions">
<input type="submit" value="Generate Report" />
</div>
}
</div> <!-- end .formStandard -->
@if (Model.ReportData != null)
{
if (Model.ReportData.Any()) {
<table class="colorTable" style="margin-top: 30px;" id="resultTable">
<thead>
<tr>
<th>Date</th>
<th>Member #</th>
<th>Amount</th>
<th>Check #</th>
<th>Name</th>
<th>Reason</th>
</tr>
</thead>
<tbody>
@foreach (MembershipCenter.ViewModels.Report.RefundCheckReportViewModel.RefundReportResultItem item in Model.ReportData)
{
<tr>
<td>@item.PrintedDate</td>
<td>@Html.GetMemberLink(item.MemberNumber)</td>
<td>@item.Amount</td>
<td>@item.CheckNumber</td>
<td>@item.PayeeName</td>
<td>@item.Reason</td>
</tr>
}
</tbody>
</table>
}
else {
<div><strong>There are not Refunds for the criteria above.</strong></div>
}
}
最後,僅供參考,我的視圖模型:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Membership = Biz.Business.Membership;
using Printing = Biz.Business.Printing;
namespace MembershipCenter.ViewModels.Report
{
public class RefundCheckReportViewModel
{
[Required]
public DateTime? StartDate { get; set; }
[Required]
public DateTime? EndDate { get; set; }
public List<RefundReportResultItem> ReportData = null;
public RefundCheckReportViewModel()
{
}
public bool IsReadyToRun(out string errorMessage)
{
errorMessage = string.Empty;
if (!StartDate.HasValue || !EndDate.HasValue)
errorMessage = "Please enter a start and end date";
else if (StartDate.Value <= new DateTime(2012, 11, 1).Date)
errorMessage = "Please enter a date greater than 11/1/2012 for the Start Date.";
return (errorMessage.IsNullOrEmpty());
}
public void LoadReportData()
{
ReportData = new List<RefundReportResultItem>();
var refunds = Membership.Getrefunds(blah);
var checks = Printing.GetChecks(blah);
foreach (var refund in refunds)
{
var check = checks.SingleOrDefault(c => c.RequestReferenceId == refund.Request.Id);
if (check != null)
ReportData.Add(new RefundReportResultItem(refund, check));
}
}
public class RefundReportResultItem
{
public int CheckNumber { get; set; }
public decimal Amount { get; set; }
public string PayeeName { get; set; }
public string MemberNumber { get; set; }
public string Reason { get; set; }
public string PrintedDate { get; set; }
public RefundReportResultItem(Membership.Refund refund, Printing.PrintedCheck check)
{
MemberNumber = refund.MemberId;
Reason = refund.Note;
Amount = refund.Amount;
PayeeName = check.Payee;
CheckNumber = check.CheckNumber;
PrintedDate = check.QueuedToPrint.ToShortDateString();
}
}
}
}
這視圖模型下RefundReportResultItem
類是人C對於報告中每個結果項目的數據都不重要。
相關問題
- 1. 進程查詢並把結果放在同一頁jsp
- 2. php在同一頁上顯示查詢結果
- 3. 查詢數據庫並在同一頁面顯示結果
- 4. 嘗試以顯示查詢結果顯示在同一頁
- 5. 在Cakephp的同一頁返回查詢結果
- 6. 結果排序從不同的表結果在一個查詢
- 7. 查詢結果不同於SSRS結果
- 8. mySQL查詢 - 在同一個查詢中再次使用結果
- 9. 在同一查詢中使用查詢的結果?
- 10. PHP和Toad Oracle查詢結果不同
- 11. Codeigniter和Oracle查詢結果不同步
- 12. BigQuery - 在同一查詢的另一部分中查詢子查詢的結果
- 13. 分頁SELECT查詢結果
- 14. 同一數據庫查詢結果
- 15. MongoDB的:在使用同一查詢結果從查詢同一文檔
- 16. MySQL的 - 結合單結果查詢和多結果查詢到一個
- 17. codeigniter分頁顯示所有查詢結果在一個頁面
- 18. 選擇查詢和相同的查詢具有結果
- 19. 獲取查詢結果的金額範圍內同一查詢
- 20. 來自同一個查詢中查詢使用結果
- 21. 使用查詢結果在同一個表上獲得另一個結果
- 22. 在查詢結果
- 23. 兩頁,同樣的數據庫查詢,不同的結果
- 24. 另一個查詢的查詢結果
- 25. 彙總查詢和結果
- 26. Rails的查詢 - 和結果
- 27. SQL查詢和結果
- 28. 推和結果查詢
- 29. 將查詢結果除以另一個查詢的結果
- 30. 過濾查詢結果與另一查詢結果
這是一個巨大的問題,完全依賴於任何其他因素。你想不同步嗎?模型如何「複雜」,以及「所有返回數據」有多少數據?從這裏開始:http://www.asp.net/mvc,回來一個更具體的問題。 –
謝謝克里斯,我簡化了我的問題。 – ron