c# – 如何检测我的页面是否是回发的结果

我在MVC3应用程序上有一个组合框.当选择一个新项目时,它会根据我的要求发回一个帖子.一切都很好.在这个过程中,我弹出一个查询字符串并在页面加载时读取它.页面刷新时,它会读取查询字符串并根据需要设置其他控件.

但是,我需要检测页面何时重新加载,它是由于回发而不是第一次加载页面.这是因为当页面最初加载时,一切都搞砸了,直到有人从组合框中选择了一些内容.

然而,网站的新用户不会知道这一点,只会看到一团糟.

据我所知,MVC3应用程序不像ASP.Net那样具有相同的isPostback,并且由于各种原因我不明白,我知道它在某种程度上不被认为是“可接受的”.

但是,我只是想知道是否有100%保证可靠的方法来区分页面首次加载和回发与ASP.Net中的方式相同.如果有这样的方式,它是什么以及如何实现它.

我见过其他帖子这样做:

public bool IsPostBack
    {
        get
        {
            return ViewBag.IsPostBack = (Request.HttpMethod == "POST");
        }
    }

但我读到其他地方,这总是如此.因此,如果这始终是真的,那么在第一次加载时也是如此,因此,我无法可靠地判断它是否是回发.我当然知道这是某种回发.但它不是第一次加载.

任何人都可以帮我解决这个问题.此外,我使用Razor视图引擎而不是标准的aspx视图引擎.

解决方法

在MVC中,您通常对GET和POST有不同的操作:
[HttpGet] // Actions are GET by default,so you can omit this
public ActionResult YourAction(int id)
{
    // GET
}

[HttpPost]
public ActionResult YourAction(YourModel model)
{
    // POST
}

如果您遵循此模式,则无需担心类似Page.IsPostBack的属性.

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...