У меня есть форма поиска с критерием поиска DateTime плюс некоторые другие критерии:
<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 с помощью Reflector, похоже, потому что он использует InvariantCulture, поэтому я ничего не могу с этим поделать.
Кажется, никто не задавал этот вопрос раньше, поэтому я думаю, что делаю что-то очень глупое ... Пожалуйста, помогите!
РЕДАКТИРОВАТЬ: передать SearchCriteria в ActionLink, а не анонимный объект, чтобы показать, почему я не могу просто сделать пользовательский ToString () самостоятельно.