Вы можете сгенерировать ActionLink
, используя временные значения местозаполнителя внутри routeValues
и поместить идентификатор в элемент привязки:
<button type="submit" value="show data" class="btn btn-default">@Html.ActionLink("Show data", "DeviceDetails", new { idDetails = ViewBag.DeviceName, begindate = "xxxx", enddate = "yyyy" }, new { id = "showdata" })</button>
Затем используйте простой JS / jQuery для обработки click
события на стороне клиентакоторый заменяет временные значения местозаполнителя на реальные значения из ввода даты (ниже используется jQuery):
$('#showdata').click(function(e) {
var beginDate = $('#begindate').val();
var endDate = $('#enddate').val();
var tempValue = $(this).prop('href');
var realValue = tempValue.replace("xxxx", beginDate)
.replace("yyyy", endDate);
location.href = realValue; // redirect
return false; // cancel default redirect
});
В качестве примечания лучше использовать строго типизированную модель представления и передавать входные значения в метод действия контроллера, используя viewmodelсвойства, а не создание большого количества строк запроса.
Пример в реальном времени: DotNET Fiddle