我有一个搜索表单,其中包括一个日期时间搜索条件以及其他一些条件:
<form method="get" action="/app/search">
<input type="text" value="13/01/2010" name="BeginDate"/>
<input type="text" value="blah" name="SomeOtherCriterion"/>
<form>
我有一个搜索控制器,它有一个默认操作(我们称其为Index)和一个SearchCriteria参数。
public class SearchController
{
public ActionResult Index(SearchCriteria searchCriteria) {//blah }
}
public class SearchCriteria
{
public DateTime BeginDate {get; set;}
public string SomeOtherCriterion {get; set;}
}
现在,如果我想创建一个ActionLink,并传递一个SearchCriteria值,可以这样做:
Html.ActionLink("Search", "Index", searchCriteria)
我在查询字符串参数中获取了以美国格式表示的BeginDate。通过在Google上搜索并使用反射查看System.Web.Routing,似乎是因为它使用了InvariantCulture,所以我对此无能为力。
似乎没有人在之前提出过这个问题,所以我想我可能做了些非常愚蠢的事情... 请帮忙!
编辑:将SearchCriteria传递给ActionLink而不是匿名对象,以显示为什么我不能自定义ToString()。