我想知道一个模式来做到这一点。我有一个带有method1()
的控制器method1(){
return View();
}
[httpost]
method1(string something){
return View(object);
}
[httpost]
method2(int? id){
return redirectToaction("method1");
}
View:
<div>
beginform(){
textfield
submit button
}
</div>
<div>
if(viewbag.something != null){
beginform("method2", "controller", new{id=number}){
<span>@model.info</span>
submit button
}
}
</div>
这显示一个视图,这个视图有一个表单文本字段并提交,这个调用method1()但是在HTTPPOst中,在同一视图中我显示另一个表单,它将调用method2()我的问题是如何显示视图中的消息?喜欢“用户已被删除”而无需创建另一个视图。是否有另一种方法在asp mvc中执行此操作,还是必须包含ajax?
我尝试在method2中设置一个viewBag,但由于method2将action重定向到method1,因此它不会停留,并且它不会显示在视图中。 谢谢!
答案 0 :(得分:3)
您可以使用在单个重定向之间保留的TempData:
public ActionResult method1()
{
return View();
}
[HttpPost]
public ActionResult method1(string something)
{
return View(something);
}
[HttpPost]
publicActionResult method2(int? id)
{
TempData["message"] = "User has been deleted";
return RedirectToAction("method1");
}
并在视图中显示消息:
<div>@TempData["message"]</div>
如果TempData
中没有消息,则只显示空div
。如果你不想要空div,你可以进一步检查视图中是否TempData["message"] != null
。