我正在創建一個與離開缺席相關的項目。根據不同的類別操作,將保留&。DB上的更新與Asp.net中的不同類別MVC
概念的每個流程正在工作,除了計算假期天數&顯示餘額。
我已經創建了一個名爲型號, LeaveReq.CS
public class LeaveReq
{
public int ID {get; set; }
[Display(Name = "Employee Name")]
public string emp_name { get; set; }
[Display(Name = "Requested Day")]
public string day_ctg { get; set; }
[Display(Name = "Start Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
public DateTime startdt { get; set; }
[Display(Name = "End Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
public DateTime enddt { get; set; }
[Display(Name = "Time-Off Category")]
public string category { get; set; }
[Display(Name = "Applied On")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
public DateTime apply { get; set; }
[Display(Name = "Balance")]
public string bal { get; set; }
}
和屏幕想,
我已經創建了一個名爲,TimeOffSettigs.CS模型
public class TimeOffSettigs
{
public int ID { get; set; }
[Display(Name = "Time-Off Type")]
[StringLength(30, MinimumLength = 3)]
public string type { get; set; }
[Display(Name = "Time-Off Category")]
public string category { get; set; }
[Display(Name = "Maximum Allowance")]
public int allowance { get; set; }
}
基本概念是,當員工申請休假的一類。他的平衡假應顯示。申請時,應從餘額中扣除某些津貼。
例如。如果我正在假期&全天(8小時)申請假期。 休假津貼80小時。 第一次申請假期。我的餘額保存爲(80-8)72小時。 在下次申請半天(4小時)。我的餘額應存放爲(72-4)68Hrs在DB
我在Controller.CS寫的代碼,這個概念
[HttpPost, ActionName("Approve")]
[ValidateAntiForgeryToken]
public ActionResult LvDetailsConfirmed(int id)
{
LeaveReq levreq = dblv.Leave_Dts.Find(id);
TimeOffSettigs timesettings = dbts.policy_tbl.Find(id);
if (levreq.bal == null)
{
if (levreq.day_ctg == "Full Day")
{
var bal_full = 8;
levreq.bal = (timesettings.allowance - bal_full).ToString();
}
else if (levreq.day_ctg == "Partial Day")
{
var bal_par = 4;
levreq.bal = (timesettings.allowance - bal_par).ToString();
}
else
{
var timespan = levreq.enddt.Subtract(levreq.startdt);
var dayscalc = timespan.Days;
var bal_mul = 8 * dayscalc;
levreq.bal = (timesettings.allowance - bal_mul).ToString();
}
}
else
{
if (levreq.day_ctg == "Full Day")
{
var bal_full = 8;
levreq.bal = (Convert.ToInt32(levreq.bal) - bal_full).ToString();
}
else if (levreq.day_ctg == "Partial Day")
{
var bal_par = 4;
levreq.bal = (Convert.ToInt32(levreq.bal) - bal_par).ToString();
}
else
{
var timespan = levreq.enddt.Subtract(levreq.startdt);
var dayscalc = timespan.Days;
var bal_mul = 8 * dayscalc;
levreq.bal = (Convert.ToInt32(levreq.bal) - bal_mul).ToString();
}
}
if (ModelState.IsValid)
{
dblv.Entry(levreq).State = EntityState.Modified;
dblv.SaveChanges();
return RedirectToAction("ELeave");
}
return View(levreq);
批准/請求屏幕會看起來像,
點擊批准後,應平衡餘額。 點擊拒絕時,不應扣除餘額。
不知道,我在控制器中做了什麼錯誤。每當我按批准時,數據庫中都沒有發生變化。
這是承認按鈕代碼
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Approve" class="btn btn-default" name="aprbtn" /> |
<input type="submit" value="Reject" class="btn btn-default" name="rejbtn"/>
@Html.ActionLink("Back to List", "ELeave")
</div>
}
此按鈕點擊控制器操作?或調試代碼 –
@Nazir是的,它擊中控制器動作 –
[HttpPost,ActionName(「批准」) [ValidateAntiForgeryToken] 公衆的ActionResult LvDetailsConfirmed(INT ID) –