2012-01-12 60 views
5

日付フィルタを使用するWebページがあり、ユーザが 'フィルタ'アクションリンクをクリックしたときに選択した日付範囲がコントローラに返され、フィルタリングされたモデルデータを「インデックス」ビューに表示します。ビューからコントローラへの日付の受け渡しmvc/c#

ビュー

@Html.ActionLink("Filter", "FilterDateRange", new { from = Url.Encode(Model.FromDate.ToString()), to = Url.Encode(Model.ToDate.ToString()) }, null) 

コントローラ

public ActionResult FilterDateRange(string from, string to) 
{ 
    var fromDate = DateTime.Parse(HttpUtility.UrlDecode(from)); 
    var toDate = DateTime.Parse(HttpUtility.UrlDecode(to)); 

    //do stuffs 

    return View("Index", statsPages); 
} 

私の質問は、これを行うために、よりエレガントな方法はありますか?現在の日付の値は、ビューでエンコードされたurlであり、コントローラでURLがデコードされています。コントローラ内のメソッドは、文字列ではなく日付の時刻パラメータを受け取ります。

ありがとうございました。

答えて

4

なぜDateTimeパラメータを使用しないのですか?

モデルバインダーには、エンコーディング、デコード、または解析を心配する必要はありません。

+0

はい、これはありがとうございます。私はあなたが元の日付の時間を戻すことができないと仮定URLを壊すだろうが、それはあなたが言ったようにモデルのバインダーを処理するようだ。 – RobJohnson

関連する問題