C# MVC를 사용하려고하는데 다음 문제가 발생했습니다. 나는 일종의 작업 관리 도구 인 작은 프로젝트를 가지고 놀고있다. 이 순간에는 2 (사용자, 작업) 모델과 해당 컨트롤러 및 뷰 집합이 있습니다. 사용자 정의 컨트롤에는 폼에서받은 데이터를 기반으로 새 사용자를 만드는 '만들기'메서드가 있습니다. 사용자가 생성되면 작업이 자동으로 만들어 져야합니다. 여기 내 사용자 컨트롤러 방법 작성/등록 할 수 있습니다 :보기를 직접 피하는 다른 컨트롤러 방법으로 리디렉션
여기public ActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "userId,dateCreated,dateRemoved,level,firstName,lastName,login,emailAddress,password")] User user)
{
user.dateCreated = DateTime.Now;
if (ModelState.IsValid)
{
db.User.Add(user);
db.SaveChanges();
return RedirectToAction("Create", "Tasks", new { Id = user.userId });
//return RedirectToAction("Index");
}
return View(user);
}
가 작업 컨트롤러의 작업 만들기 방법입니다
public ActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "taskId,dateCreated,dateAssigned,userId,assigneeId,taskCategory,taskType,taskPriority,taskStatus,taskName,dateDue,dateClosed,Comments")] Task task, int? Id)
{
task.dateCreated = DateTime.Now;
if (Id != null)
{
task.userId = (int)Id;
task.dateAssigned = DateTime.Now;
task.dateCreated = DateTime.Now;
task.dateDue = DateTime.Now.AddDays(7);
task.taskCategory = taskCategory.assigned;
task.taskType = taskType.System_Induction;
task.assigneeId = 2;
task.taskPriority = taskPriority.Low;
task.taskName = "Iduction to TaskManagementTool";
task.Comments = "Please go through the following training materials:";
task.taskStatus = taskStatus.Assigneed;
if (ModelState.IsValid)
{
db.Tasks.Add(task);
db.SaveChanges();
ViewBag.TaskAssignedNotification = "Hello " + Session["login"].ToString() + " you have new task assigned" ;
switch (Session["level"].ToString())
{
case "Basic":
return RedirectToAction("LoggedAsBasic", "Home");
break;
default:
return RedirectToAction("LoggedAsBasic", "Home");
}
//return RedirectToAction("Index", "Home");
}
}
else
{
task.userId = Int32.Parse(Session["userId"].ToString());
task.taskStatus = taskStatus.Created;
if (Session["level"].ToString() == "Assigner" && task.taskCategory == taskCategory.assigned)
{
task.dateAssigned = DateTime.Now;
}
if (Session["level"].ToString() == "Basic")
task.taskCategory = taskCategory.own;
if (ModelState.IsValid)
{
db.Tasks.Add(task);
db.SaveChanges();
return RedirectToAction("TasksIndex");
}
}
return View(task);
}
새 사용자에게 이드의 방법을 만들기 위해 통과해야 새 사용자를 만드는 동안 HTML 양식으로 작성보기를 열지 않고 태스크 제어기 및 사전 정의 된 태스크 (if (Id! = null)에서)를 새 사용자에 대해 작성해야합니다. Unfortunatley 사용자 컨트롤러에서 작업 컨트롤러의 Create 메서드를 호출 할 수 없습니다. 기껏해야 나는 채워질 작업을 만들어야합니다. 당신은 사람들이 나를 도울 수 있습니까?
죄송합니다, 모두 "등록"작업 컨트롤러의 "생성"방법에서 사용자 컨트롤러 점 OG 방법을 "만들기" – Lotekh
당신의/작업이/메소드를 작성하는 것은 다른 곳에서는 사용할 수 없습니다 것 같다 , 그리고 그것은 사용자 생성 시점에 사용자에게 묶여 있습니다./task/create [HttpGet] 메소드를 제거하고 사용자 ID를 [HttpPost]에 전달하면됩니다. 폼이 채워지고 전달되지 않고 초기화 작업 만 수행 중이기 때문에 바인딩을 수행하거나 폼이 유효한지 확인할 필요가 없습니다. – nocturns2
'TaskController'의'Create()'메소드는 ID를위한 매개 변수를 필요로합니다 -'public ActionResult Create (int ID)', 그리고 모델의 새로운 인스턴스를 초기화하고,'UserID'를 설정하고 model to the view –