我想将变量传递给其他Controllers TableName, 我正在尝试ViewBag.Variable,但确实发送了null。
如果您可以将这些参数从一个控制器传递到另一个控制器 非常感谢您的帮助
public class HomeController : Controller
{
public ActionResult Index()
{
string NombreVariable = "TablaUsuario";
ViewBag.Variable = NombreVariable;
return View();
}
[ValidateInput(false)]
public ActionResult GridViewPartial()
{
var entity = (IEnumerable)db.GetType()
.GetProperty(ViewBag.Variable)
.GetValue(db, null);
var model = entity.Cast<object>();
return PartialView("_GridViewPartial", model);
}
[HttpPost, ValidateInput(false)]
public ActionResult GridViewPartialAddNew()
{
var entity = (dynamic)db.GetType()
.GetProperty(ViewBag.Variable)
.GetValue(db, null);
var model = entity;
if (ModelState.IsValid)
{
try
{
Model.TableUsuario tb = new Model.TableUsuario();
int contador=tb.GetType().GetProperties().Count();
//Coleccion[] cual = new Coleccion[contador];
int contadores = 0;
string[] valores = new string[contador];
foreach( var i in tb.GetType().GetProperties())
{
valores[contadores] = "'" + Convert.ToString(GridViewExtension.GetEditValue<dynamic>(i.Name)) + "' AS " + i.Name ;
contadores += 1;
}
db.Database.ExecuteSqlCommand("insert into TableUsuario SELECT " + string.Join(",",valores));
db.SaveChanges();
}
catch (Exception e)
{
ViewData["EditError"] = e.Message;
}
}
else
ViewData["EditError"] = "Please, correct all errors.";
return PartialView("_GridViewPartial", model);
}
答案 0 :(得分:0)
如果你想从Controller_B调用Controller_A中的method_A,你可以这样做:
在Controller_B中
Controller_A myControllerA = new Controller_A();
myControllerA.method_A(myVariable);
在Controller_A
中public void method_A(MyClass myVariable)
...
...
或者,如果您想要一个可在任何地方使用的“全局”变量,您可以使用与ViewBag类似的方式将其分配给Session
Session["myVariable"] = myVariable;
虽然我会警告不要使用会话:并非一切都属于会话状态。
我想这完全取决于你想要实现的目标。