如何从客户端重定向用户?

时间:2015-07-23 10:40:04

标签: asp.net-mvc asp.net-mvc-4

我有mvc应用程序。

我希望从客户端实现重定向而不使用查询字符串参数。 让我说我是页面http://localhost/weapp/details,从这个页面打开open并设置startdate,enddate和userid。这个弹出窗口也有Go按钮,当我点击Go按钮页面时应重定向 到http://localhost/weapp/userproduectlist这样的网页,网格按照在startdate,enddate和userid中选择的参数进行过滤。

我正在使用以下代码来执行此操作。所以如何在没有查询字符串参数的情况下实现重定向。

var start = new Date($('#dtuStartDate').data("kendoDatePicker").value());
  var end = new Date($('#dtuEndDate').data("kendoDatePicker").value());
 $.ajax({
      url:'@Url.Action("Alluserproduectlist","Users")',
     type: 'POST',
     data: { startDate: kendo.toString(start, 'dd-MMM-yy hh:mm:ss tt'), endDate: kendo.toString(end, 'dd-MMM-yy hh:mm:ss tt'), userid: $("#drpuser").data("kendoMultiSelect")._values.join() },
     success: function(data)
      {
      }
      });
 });

那么如何在没有查询字符串的情况下将mvc应用程序从一个客户端重定向到具有所选参数的客户端的其他操作,以便下一页按照上一页中的所选参数加载数据?

2 个答案:

答案 0 :(得分:1)

您可以使用带有提交按钮的表单(在您的情况下为GO)

 @using (Html.BeginForm("Alluserproduectlist", "Users", FormMethod.Post))
{
    //set startdate, enddate and userid .
    
    <input type="submit" value="GO"/>
 
}
如果您没有显示表单,则将值传递给具有上述重载的表单中的隐藏表单字段,并调用jquery $('#myHiddenForm')。submit();点击go按钮。

答案 1 :(得分:0)

在你的action方法中,你可以像这样返回JSON:

return Json(new { newLocation = "/Home/Index/" });

此外,您可以传递额外信息作为结果,然后在客户端传递:

success: function(data)
{
    window.location = data.newLocation
}