我有以下接受表单提交的代码
[ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestingTemp(FormCollection result)
{
string cat = "";
return View("Try");
}
现在的问题是,即使它似乎加载了“尝试”页面,但事情在页面上中断,因为它不会触发以下代码(如果我直接转到Try页面,它会被正确触发)。
public ActionResult Try()
{
ViewData["Test"] = DataLayer.Test(0, 10);
return View();
}
如果你知道我的意思,那么url还包含TestingTemp,它应该包含Try。
答案 0 :(得分:3)
我认为你要找的是RedirectToAction
。它将重定向到您的其他方法并重写URL。
[ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestingTemp(FormCollection result)
{
string cat = "";
return RedirectToAction("Try");
}
答案 1 :(得分:0)
首选的方法是使用redirectToAction,但是如果你想这样做那么你必须把你在Try方法中所做的数据放在
中[ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestingTemp(FormCollection result)
{
string cat = "";
ViewData["Test"] = DataLayer.Test(0, 10);
return View("Try");
}
但正如我所说的那样不是首选,即在每个动作中重复你的代码而不是你可以写一些像
[ActionName("TestingTemp"), AcceptVerbs(HttpVerbs.Post)]
public ActionResult TestingTemp(FormCollection result)
{
string cat = "";
return RedirectToAction("Try");
}