我想将一个对象或至少其ID从控制器发送到另一个控制器,那么我该怎么做呢? 如何在asp.net mvc
中将变量从控制器发送到另一个变量这条指令解决了问题,还是仅仅用于控制器 - 视图通信? 这是第一个控制器中的方法:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult login(Utilisateur u)
{
if (u.login != null && u.Password != null)
{
using (BD_GestionDepences db = new BD_GestionDepences())
{
string x;
string hash = GetSHA1HashData(u.Password);
x = hash;
u.Password = x;
u.ConfirmPassword = x;
Utilisateur utilisateurV = log_existe("admin", u.login, u.Password);
if (utilisateurV != null)
{
return RedirectToAction("admin");
}
else { ViewBag.ResultMessage = "verifier login et password !"; }
}
}
return View(u);
}
这是我的第二个控制器:我想将用户登录从第一个控制器中的登录方法发送到此控制器中的create方法:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using mvc_depences.Models;
namespace mvc_depences.Controllers
{
public class ProjetController : Controller
{
private BD_GestionDepences db = new BD_GestionDepences();
public ActionResult Index()
{
return View();
}
//public ActionResult beforeCreate()
//{
//}
public ActionResult Create()
{
ViewBag.UtilisateurID = new SelectList(db.Utilisateurs, "UtilisateurID");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ProjetId,nomP,DateDebut,DateFinPrevue,DateFinReele,etat,Description,UtilisateurID")]Projet projet)
{
if(ModelState.IsValid)
{
db.Projets.Add(projet);
db.SaveChanges();
return RedirectToAction("Index");
};
return View(projet);
}
public ActionResult Projet_Read([DataSourceRequest]DataSourceRequest request)
{
IQueryable<Projet> projets = db.Projets;
DataSourceResult result = projets.ToDataSourceResult(request, projet => new
{
ProjetId = projet.ProjetId,
nomP = projet.nomP,
DateDebut = projet.DateDebut,
DateFinPrevue = projet.DateFinPrevue,
DateFinReele = projet.DateFinReele,
etat = projet.etat,
});
return Json(result);
}
//public ActionResult Index()
//{
// return View();
//}
}
}
答案 0 :(得分:1)
您不能使用 ViewData 将变量从控制器发送到另一个控制器。
可以使用“成功验证”执行,请调用以下方法
return RedirectToAction("ActionName", "ControllerName", new {variable1 = value1, variable2 = value2/*...etc*/});
答案 1 :(得分:0)