Я хочу передать значение параметра, но когда я нажимаю, ошибка загрузки показывает AllDates показывает нулевое значение.Allstate - это флажок, если check извлекает все данные, если не проверяет, затем ставит date from и Date to затем выбирает значение.Но все значения даты не передаются контроллеру и показывают нулевое значение.Любой эксперт говорит мне, где я ошибаюсь.
Я делюсь ошибкой:
Словарь параметров содержит пустую запись для параметра 'AllDates' ненулевого типа 'System.Boolean'для метода' System.Web.Mvc.ActionResult Index (Int32, Boolean, System.String, System.String) 'в' Lead_Management_System.Controllers.ReportController '.Необязательный параметр должен быть ссылочным типом, обнуляемым типом или быть объявлен как необязательный параметр.Имя параметра: параметры
HTML
@using (Html.BeginForm("Index", "Report"))
{
<div class="form-control">
Agent @Html.DropDownListFor(m => m.agentid, Model.SaleAgentList, new { id = "lblAgent" })
<div id="lblDate">
<br />
Followup Date <br /><br />
From: <input type="date" name="cmbSDate" id="cmbSDate" readonly="readonly" />
To: <input type="date" name="cmbTDate" id="cmbTDate" readonly="readonly" />
Select All : <input type="checkbox" name="AllData" id="AllData" onclick="mcheck()" checked /> <br /> <br />
</div>
<input type="submit" value="Download" />
</div>
}
Javascript
<script type="text/javascript">
function mcheck() {
if ($('#AllData').not(':checked').length) {
document.getElementById("cmbSDate").readOnly = false;
document.getElementById("cmbTDate").readOnly = false;
$("#AllData").attr('checked', false);
}
else {
document.getElementById("cmbSDate").readOnly = true;
document.getElementById("cmbTDate").readOnly = true;
$("#AllData").attr('checked', true);
}
}
</script>
Контроллер
public ActionResult Index(int AgentID, bool AllDates, string DateFrom, string DateTo)
{
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["Real"].ToString());
SqlCommand cmd = new SqlCommand("SP_rptAgentStatus", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@AgentID", AgentID);
cmd.Parameters.AddWithValue("@AllDates", AllDates);
cmd.Parameters.AddWithValue("@DateFrom", DateFrom);
cmd.Parameters.AddWithValue("@DateTo", DateTo);
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
lstatus mls = new lstatus();
Reports.rptAgentStatus rpt = new Reports.rptAgentStatus();
rpt.SetDatabaseLogon("sa", "");
rpt.SetDataSource(dt);
rpt.SetParameterValue(0, "SUKH CHAYN RESIDENCE");
rpt.SetParameterValue(1, "Agent Status "+ DateTime.Parse(DateFrom).ToShortDateString() + DateTime.Parse(DateTo).ToShortDateString());
rpt.SetParameterValue(2, AgentID);
rpt.SetParameterValue(3, DateFrom);
rpt.SetParameterValue(4, DateTo);
Response.Buffer = false;
Response.ClearContent();
Response.ClearHeaders();
Stream str = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
str.Seek(0, SeekOrigin.Begin);
return File(str, "application/pdf", "rptAgentStatus.pdf");
}