2015-12-17 47 views
5
  1. 你好呈現之前,我很新到MVC5,剃鬚刀,以及EF和我一直在尋找了兩天,仍無法找出解決的辦法對我的問題。
  2. 我想要做的是有一個視圖,用戶輸入年份,季度和部門。在提交時,我想要另一個視圖的控制器來查看這些參數並在呈現視圖之前過濾數據。目前我有5個不同的部門,我想只在渲染視圖時過濾一個部門。
  3. 我看了很多論壇,網站等試圖弄清楚這一點,我沒有任何運氣。我會很高興至少指出正確的方向。我試圖通過跳入火中並自己想出來學習,但現在我需要幫助。
  4. 我對MVC的工作原理有了全面的瞭解,我沒有與DB一起工作的問題,並且我已經成功地學習了腳手架的工作原理以及ViewModels。我現在正在嘗試學習如何操作控制器和視圖中的數據。任何幫助,將不勝感激。
  5. 查看1 - 只需輸入參數在控制器過濾數據它是在一個視圖

    <p> Enter Year: @Html.TextBox("Year")</p> 
    <p> Enter Quarter: @Html.TextBox("Qtr")</p> 
    <p> Enter Division: @Html.TextBox("Div")</p> 
    <p><input id="Submit" type="button" value="button" /></p> 
    
  6. 控制器視圖2

    namespace BSIntranet.Controllers 
    { 
        public class DivisionIncomeController : Controller 
        { 
         private ProjectionsEntities db = new ProjectionsEntities(); 
    
         // GET: DivisionIncome 
         public ActionResult Index() 
         { 
          return View(db.JobRecaps.ToList()); 
         } 
        } 
    } 
    

我不知道這裏介紹什麼或怎麼樣。謝謝你的幫助!!

編輯 使用系統; using System.Collections.Generic;

public partial class JobRecap 
{ 
    public int ID { get; set; } 
    public string Job_ID { get; set; } 
    public int Year { get; set; } 
    public int Qtr { get; set; } 
    public string Div { get; set; } 
    public string PreparedBy { get; set; } 
    public string ReviewedBy { get; set; } 
    public Nullable<System.DateTime> Date { get; set; } 
    public Nullable<System.DateTime> ProjStart { get; set; } 
    public Nullable<System.DateTime> ProjComp { get; set; } 
    public string SvgsSplit { get; set; } 
    public Nullable<int> OwnerSplit { get; set; } 
    public Nullable<int> BSSplit { get; set; } 
    public string JointVent { get; set; } 
    public Nullable<int> BSPct { get; set; } 
    public string ContractType { get; set; } 
    public string ContractWritten { get; set; } 
    public Nullable<decimal> CurContrAmt { get; set; } 
    public string FeeBasis { get; set; } 
    public Nullable<decimal> EstTotFeePct { get; set; } 
    public Nullable<decimal> EstTotFeeAmt { get; set; } 
    public string PreconFeeBasis { get; set; } 
} 
+0

這將有助於看到模型的代碼。你能補充一點嗎? – ScoobyDrew18

+0

你可能會發現這個帖子很有幫助[篩選/搜索使用多個字段 - ASP.NET MVC](http://stackoverflow.com/a/33154580/3110834) –

+0

是的我見過這種方法,但我想過濾視圖在呈現之前,在頁面加載後不過濾它。謝謝你的建議! –

回答

5

爲了讓事情簡單,你可以簡單地添加int? Year, int? Qtr, string Div參數,您Index行動,並使用它們搜索:

public ActionResult Index(int? Year, int? Qtr, string Div) 
{ 
    var data= db.JobRecaps.AsQueryable(); 
    if(Year.HasValue) 
     data= data.Where(x=>x.Year == Year); 
    if(Qtr.HasValue) 
     data= data.Where(x=>x.Qtr == Qtr); 
    if(!string.IsNullOrEmpty(Div)) 
     data= data.Where(x=>x.Div == Div); 

    return View(data.ToList()); 
} 

注:

你也可以單獨關注,並創建一個JobRecapSearchModel包含這些搜索參數並將其用作動作參數,並創建一個包含的類方法與我上面使用的業務。這樣你將有一個更靈活和漂亮的控制器。

要了解更多關於如何使用這樣的方法和好處,你可以看看這個問題:

+2

不是說技術上很重要,但'AsQueryable'是不必要的。 'db.JobRecaps'返回'IQueryable'。 –

+0

謝謝你Reza ......花了一點時間才弄明白,但我明白你在說什麼。我很新! –

+0

歡迎@DavidWilliams :) –

相關問題