Я немного подумал об этом, прежде чем пытаться придумать ответ. Первоначально меня поразила идея превратить одну строку ввода текста в компоненты месяца, дня и года. В ASP.NET MVC было бы намного проще просто принять строку для даты. Таким образом, ваш код изменится на:
public ActionResult Index(string date) {
try
{
DateTime dtDate = DateTime.Parse(date);
var visitors = visitorRepoistory.FindVisitorsByDate(dtDate.month,
dtDate.day, dtDate.year).ToList();
return View("Index", visitors);
}
catch (FormatException)
{
//String was not a valid date/time
}
}
Есть ли способы разделить его на 3 дюйма? Я уверен. Но для меня это был бы самый простой / быстрый путь к цели.
Таким образом, в вашем виде ваша форма будет выглядеть примерно так:
<% using(Html.BeginForm("VisitorSearchController", "Index")) { %>
Enter a date: <%= Html.TextBox("date") %>
<input type='submit' value='Search' />
<% } %>
Где "VisitorSearchController" - это имя контроллера, на который вы хотите отправить сообщение. Конечно, «Индекс» - это метод, который вы публикуете. Я бы придерживался кнопки отправки пока вы не пытаетесь получить эквивалент LinkButton на странице. Но вы можете сохранить «красивую» часть после функциональности, верно?
Редактировать: добавлен вид кода к ответу.