gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - IsPostBack 还在这里吗?

转载 作者:行者123 更新时间:2023-12-03 13:38:39 26 4
gpt4 key购买 nike

我知道,我知道,我知道。我完全同意,我不应该在 MVC 中做网络表单。但是,签署我的薪水支票的人现在不会批准我们的网站完全转换为 MVC。因此,我正在逐页采取增量步骤来转换它们,同时在 MVC 中添加新功能。

所以我的问题是如何从 Controller 访问 IsPostBack 属性?

编辑:为了进一步澄清,我的 mvc 母版页上有一个 webform 用户控件,可以启动回发。我正在尝试识别这些回发与 mvc 帖子。在这一点上,我想我将只检查“__viewstate”键的请求表单键,如果找到它,则将其视为回发。

最佳答案

没有 IsPostBack —— 一切都是 POST 或 GET(或其他 HTTP 动词)。您可以使用 AcceptVerbsAttribute 限制您的操作允许的 HTTP 动词,即,您永远不会看到来自不允许的动词的请求。例如,以下仅允许 POST。

  [AcceptVerbs( HttpVerbs.Post )]
[ValidateAntiForgeryToken]
public ActionResult Update( int id )
{
}

如果您需要相同的操作名称同时执行 GET/POST 并且它们实际上执行不同的操作,您可以给它们单独的签名或使用 ActionNameAttribute 为其中一个操作设置别名,以便方法可以具有不同的名称。
  [AcceptVerbs( HttpVerbs.Get)]
public ActionResult List()
{
}

[AcceptVerbs( HttpVerbs.Post )]
[ValidateAntiForgeryToken]
public ActionResult List( string filter, int page, int limit )
{
}

或者
  [ActionName( "List" )]
[AcceptVerbs( HttpVerbs.Get)]
public ActionResult ListDisplay()
{
}

[AcceptVerbs( HttpVerbs.Post )]
[ValidateAntiForgeryToken]
public ActionResult List()
{
}

编辑 :请注意,我已将防伪 token 验证添加到 POST 操作中。你真的应该用它来 protect against cross-site scripting attacks .

关于asp.net-mvc - ASP.NET MVC - IsPostBack 还在这里吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com