【问题标题】:Routing Mvc3 value of datepicker路由选择器的 Mvc3 值
【发布时间】:2012-02-02 09:36:01
【问题描述】:

我正在使用 Telerik 的 asp Mvc3 我在 Global.asax 中添加了一条新路线

            routes.MapRoute(
            "SearchDate",
            "ahmed/{date1}/{date2}",
            new
            {
                controller = "ListeDernierEmplacementConnu",
                action = "Search",
                date1 = UrlParameter.Optional,
                date2 = UrlParameter.Optional
            });

在我看来,我会使用这个(日期选择器表单)将日期发送到控制器

    @using (Html.BeginRouteForm("SearchDate", new { date1 ="1-01-2012", date2 ="1-07-2012"}))

   {
            <label for="date1">rechercher entre</label>
            @(Html.Telerik().DatePicker()
                    .Name("date1")
                   .Value(DateTime.Now).Max(DateTime.Now).Min(("01/01/2012"))
            )
            <label for="date2">et</label>
            @(Html.Telerik().DatePicker()
                    .Name("date2")
                   .Value(DateTime.Now).Max(DateTime.Now).Min(("01/01/2012"))
            )

    <button type="submit" class="t-button t-state-default" value="search">Rechercher</button>
   }  

一切正常,我在控制器中获得了 datepicker 的 2 个值 但我总是被重定向到相同的 URL localhost/ahmed/1-01-2012/1-07-2012?Grid-page=1

例如在 datepicker1 我把 1/1/2012 datepicker2 2/2/2012

我得到了我想要的:2012 年 1 月 1 日,2012 年 2 月 2 日

但网址是静态的,我总是得到:localhost/ahmed/1-01-2012/1-07-2012?Grid-page=1

如何在 url 中动态改变这 2 个值

【问题讨论】:

    标签: asp.net-mvc-3 razor asp.net-mvc-routing telerik-mvc


    【解决方案1】:

    您可以将表单发布到另一个控制器操作并重定向到此方法中的适当位置。

    我在下面为你准备了一个例子:

    表格

    @using (Html.BeginForm("RedirectToDate", "YourController"))
    {
    <label for="date1">rechercher entre</label> 
        @(Html.Telerik().DatePicker() 
                .Name("date1") 
                .Value(DateTime.Now).Max(DateTime.Now).Min(("01/01/2012")) 
        ) 
        <label for="date2">et</label> 
        @(Html.Telerik().DatePicker() 
                .Name("date2") 
                .Value(DateTime.Now).Max(DateTime.Now).Min(("01/01/2012")) 
        ) 
    
    
    <input type="submit" value="Submit" />
    }
    

    控制器

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult RedirectToDate()
    {
    
        string date1 = Convert.ToDateTime(Request.Form["date1"]).ToString("dd-MM-yyyy");
        string date2 = Convert.ToDateTime(Request.Form["date2"]).ToString("dd-MM-yyyy");
    
        return Redirect(String.Concat("/ahmed/", date1 "/", date2 "/"));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多