Asp.net mvc 处理get和post
我有一个关于ASP.NETMVC4中的get和post过程的问题。 我相信人们经常谈论这个话题,但搜索这个话题并不容易 让我试着解释一下: 我用标准方法启动控制器:Asp.net mvc 处理get和post,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我有一个关于ASP.NETMVC4中的get和post过程的问题。 我相信人们经常谈论这个话题,但搜索这个话题并不容易 让我试着解释一下: 我用标准方法启动控制器: [HttpGet] public ActionResult Item() 因此,在这个函数中,我检索了很多重要数据,例如用户id等。 在我的例子中,我甚至在viewbag()中收集数据以决定是否必须显示表单 现在,如果我开始回帖: [HttpPost] public ActionResult Ite
[HttpGet]
public ActionResult Item()
因此,在这个函数中,我检索了很多重要数据,例如用户id等。
在我的例子中,我甚至在viewbag()中收集数据以决定是否必须显示表单
现在,如果我开始回帖:
[HttpPost]
public ActionResult Item(FormCollection formCollection)
该函数以标准视图()的形式返回
现在的问题是,在post方法之后,GET方法的业务逻辑(检索用户id等)没有被调用。。。我已经试着用你的方式解决它了
return this.RedirectToAction("Item");
但这真的是从一开始就重复逻辑的解决方案吗?我怎样才能将post方法中的新值传递给get方法呢
致以最良好的祝愿,
帕特里克这种模式被称为
若要将其他数据传递给GET方法,您可以使用TempData和from MvcContrib—如果返回重定向,则将ModelState传递给TempData,如果返回视图,则将TempData传递给ModelState
[HttpGet]
[ModelStateToTempData]
public ActionResult Item(int id)
{
// prepare view
return View();
}
[HttpPost]
[ModelStateToTempData]
public ActionResult Item(FormCollection formCollection)
{
// do some business logic
int id = service.DoBusinessLogicAndReturnSomeId();
return this.RedirectToAction("Item", new { id });
}
您应该避免在GET中使用业务逻辑。所有的业务逻辑都应该在POST方法中,调用后可以重定向到准备视图的位置。这是我的案例的标准模式吗?