Asp.net mvc 3 路由日期选择器的Mvc3值

Asp.net mvc 3 路由日期选择器的Mvc3值,asp.net-mvc-3,razor,asp.net-mvc-routing,telerik-mvc,Asp.net Mvc 3,Razor,Asp.net Mvc Routing,Telerik Mvc,我与telerik在asp Mvc3中工作 我在我的Global.asax中添加了一条新路线 routes.MapRoute( "SearchDate", "ahmed/{date1}/{date2}", new { controller = "ListeDernierEmplacementConnu", acti

我与telerik在asp Mvc3中工作 我在我的Global.asax中添加了一条新路线

            routes.MapRoute(
            "SearchDate",
            "ahmed/{date1}/{date2}",
            new
            {
                controller = "ListeDernierEmplacementConnu",
                action = "Search",
                date1 = UrlParameter.Optional,
                date2 = UrlParameter.Optional
            });
在我看来,我会使用这个(datepicker表单)向控制器发送日期

    @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>
   }  
@使用(Html.BeginRouteForm(“SearchDate”,新的{date1=“1-01-2012”,date2=“1-07-2012”}))
{
里切彻中心酒店
@(Html.Telerik().DatePicker())
.姓名(“日期1”)
.Value(DateTime.Now).Max(DateTime.Now).Min((“01/01/2012”))
)
et
@(Html.Telerik().DatePicker())
.姓名(“日期2”)
.Value(DateTime.Now).Max(DateTime.Now).Min((“01/01/2012”))
)
回收机
}  
一切正常我在控制器中得到了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日

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


如何在url中动态更改这2个值,您可以将表单发布到另一个控制器操作,并重定向到该方法中的适当位置

下面我为您准备了一个示例:

表格

@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 "/"));
}