#asp.net #ajax #datetime #parameters #asp.net-mvc-5
#asp.net #ajax #дата и время #параметры #asp.net-mvc-5
Вопрос:
На мой взгляд, у меня есть:
@Html.EditorFor(model => model.From, new { htmlAttributes = new {id = "fromEdit", @class = "form -control", @style = "width:300px" } })
@Html.EditorFor(model => model.To, new {htmlAttributes = new { id = "toEdit", @class = "form-control", @style = "width:300px"}})
и мне нужен вызов при действии контроллера с двумя параметрами даты и времени из scrypt:
<script>
var dataToSend = {
startDate: $("#fromEdit").getDate,
endDate: $("#toEdit").getDate
}
$(document).ready(function() {
$('#example').DataTable({
"ajax": {
"url": RootUrl "SalesDetailsReport/GetSalesDetailReport",
"type": "GET",
"data": dataToSend ,
"dataType": "json"
},
"aoColumns": [
{ "data": "Date", "autoWidht": true },
{ "data": "Client", "autoWidht": true },
{ "data": "Product", "autoWidht": true },
{ "data": "Costs", "autoWidht": true },
{ "data": "Profit", "autoWidht": true },
{ "data": "ProfitMarginPercentage", "autoWidht": true },
{ "data": "Amount", "autoWidht": true },
]
});
});
</script>
в моем контроллере:
public ActionResult GetSalesDetailReport(DateTime pFrom , DateTime pTo)
что-то не так (или вообще что-либо), потому что в свойствах моего браузера я вижу :
Получает подробный отчет?_=1477245791871 500 (внутренняя ошибка сервера)
и действие контроллера никогда не вызывается.#
Спасибо за ваше время, ребята!
Комментарии:
1. хорошо, с этим изменением в свойствах моего браузера я вижу: localhost: 59798/SalesDetailsReport/… Не удалось загрузить ресурс: сервер ответил со статусом 500 (внутренняя ошибка сервера). Похоже, я считываю дату и время в неправильном формате. Спасибо
2. И сообщение браузера таково: Словарь параметров содержит нулевую запись для параметра ‘pFrom’ ненулевого типа ‘System. DateTime ‘для метода ‘System.Web.Mvc.ActionResult получает отчет о продажах (System. Дата, время, система. DateTime)’ в ‘ERPPrismaMVC5.Controllers. SalesDetailsReportController’. Необязательный параметр должен иметь ссылочный тип, тип с возможностью обнуления или быть объявлен как необязательный параметр. Имя параметра: параметры
Ответ №1:
Параметрами вашего метода действия являются pFrom
и pTo
. Поэтому убедитесь, что отправляемый вами объект js имеет то же имя свойства.
var dataToSend = {
pFrom: $("#fromEdit").val(),
pTo: $("#toEdit").val()
}
Комментарии:
1. После этого изменения я отправляю это в URL:
2. После этого изменения я отправляю это по URL: pFrom=23/10/2016 20:23:01amp; и поскольку контроллер не получает параметр rights и не вызывает действие. Спасибо
3. откуда вы знаете, что контроллер не получает параметр? Вы установили точку останова и проверили значения?
4. Да, я это сделал, я поставил точку останова в начале, и, кроме того, браузер сообщает мне: словарь параметров содержит нулевую запись для параметра ‘pFrom’. Я думаю, что take null baceau может решить тип. Есть идея?
5. Возможно, ваши входные данные не имели значения при выполнении вызова. Попробуйте заменить значения для
pFrom
иpTo
на некоторые жестко закодированные строки даты (например:10/10/2001
) и посмотрите, что получится.