如何在javascript中检测回发?

时间:2014-04-14 12:56:55

标签: javascript asp.net-mvc postback

我需要使用Javascript在第一页加载时用当前日期时间填充文本。 我的意思是我在ASP.NET中寻找类似于Page.IsPostBack属性的模型,但在JS中。

我找到了解决方案,我建议使用服务器端代码来检测回发并将变量传递给客户端。但是我正在使用MVC,而且没有像Page.IsPostBack ......

这样的属性

请帮我找到答案

4 个答案:

答案 0 :(得分:1)

对MVC没有这样的想法。您可以处理POST,GET或两者的操作。您可以使用[HttpPost]和[HttpGet]属性过滤每个操作可以处理的内容。

在MVC上,你最接近IsPostBack的行为就像这样:

public ActionResult Index() 
{
    if (Request.HttpMethod == "POST") 
    {
        // Do something
    }

    return View();
}

因此,

[HttpPost]
public ActionResult Create(CreateModel model) 
{
    if (Request.HttpMethod == "POST") // <-- always true
    {
        // Do something
    }

    return RedirectToAction("Index");
}    

参考:MVC3 Page - IsPostback like functionality

答案 1 :(得分:1)

您可以这样做:

 <script>
    function myFunction() {
      // ...
    }

    @if (Request.HttpMethod == "POST")
    {
       @Html.Raw("myFunction();")
    }
</script>

答案 2 :(得分:0)

[HttpPost]
public ActionResult MyAction()
{

   ViewBag.IsPostBack=true;

}

然后在你看来

<script>
  var isPostBack=@ViewBag.IsPostBack;
</script>

答案 3 :(得分:0)

你在这里错过了你正在使用MVC,没有这样的&#34;回发&#34;概念。 在您的视图中,在控制器GET方法中,填充日期的值。 在相应的POST中,您将获得此值或用户填写的其他值。因此,如果它是一个帖子,您将永远不会通过第一次填写日期的代码行。