我對c#和asp.net mvc很新穎。我正在爲我們公司建立人力資源門戶網站,用戶可以在其中提交請假表格......因此,我使用mssql作爲數據庫服務器並使用Entity Frame工作來與其進行通信。我有3個實體,用戶(包含用戶詳細信息),權限(允許在應用程序中執行操作的用戶權限),然後是離開表單表單(存儲表單詳細信息的位置)。用戶許可和用戶許可之間存在一對多關係。我並不擔心在創建用戶帳戶時創建的權限。在關係數據庫表格中插入一行
我面臨的問題是,如何爲特定用戶添加假表單?以下是我的控制器代碼:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Leave(MasterViewModel model)
{
DocSubViewModel mv = model.DSModel;
int userId = Convert.ToInt32(Session["userID"]);
try
{
using (HrDcpDBContainer db = new HrDcpDBContainer())
{
var leave = db.leaves.Create();
leave.dateFrom = mv.DateFrom;
leave.dateSubmitted = DateTime.Now;
leave.dateTo = mv.DateTo;
leave.nrDays = mv.NrDays;
leave.reason = mv.SpecialLeave;
leave.TLApproval = null;
leave.TLApprovalDate = null;
leave.TLApprovalID = mv.TeamLeaderID;
leave.DMApprovalDate = null;
leave.DMApprovalID = mv.DepManagerID;
leave.DMApproval = null;
leave.type = mv.Type;
leave.user = userId;
db.leaves.Add(leave);
db.SaveChanges();
}
ViewBag.Message = "Leave Form submitted Successfully. You will be redirected shortly...";
return View("result");
}
catch (Exception ex)
{
ViewBag.Message = ex;
//ViewBag.Message = "Leave Form submitted Successfully. You will be redirected shortly...";
return View("result");
}
問題出在leave.user = userId;
。它說:
無法隱式轉換的int Portal.Model.user
我似乎無法找出如何做到這一點...
這是因爲你將userId分配給'user'。用戶是一個整數類型嗎?我的猜測是這是一個對象 – jamiedanq
leave.user是數據庫中的主鍵 –
是leave.user.userid嗎? – Amit