Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 处理get和post_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 处理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

我有一个关于ASP.NETMVC4中的get和post过程的问题。 我相信人们经常谈论这个话题,但搜索这个话题并不容易

让我试着解释一下:

我用标准方法启动控制器:

[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方法中,调用后可以重定向到准备视图的位置。

这是我的案例的标准模式吗?