脚本:
<script type="text/javascript">
$(function () {
$('#datetimepicker').datetimepicker({
disabledDates: [
new Date()
],
inline: true,
format: 'L',
daysOfWeekDisabled: [0, 6],
minDate: new Date(),
useCurrent: false
});
$('#datetimepicker').on('change.datetimepicker', function (event) {
var formatted_date = event.date.format('M/DD/YYYY');
$('#datetimepickerOut').val(formatted_date);
$.ajax({
url: '@Url.Action("Create")',
contentType: 'application/html; charset=utf-8',
data: { calendarDate: formatted_date },
success: function (data) {
$('#divTimeSlots').fadeIn("slow");
},
failure: function (result) {
alert(errMsg);
}
});
});
$('#divTimeSlots input').on('change', function (event) {
$('#SlotTimeOut').val($("[type='radio']:checked").val());
});
});
</script>
控制器:
public ActionResult Create(string calendarDate)
{
testViewModel mvm = new testViewModel();
mvm.myDate = calendarDate;
}
创建视图:
<div class="col-md-5" id="divTimeSlots" style="display: none;">
@{
var getDate = Model.myDate;
foreach (var rTimeSlots in Model.ListSlotTimeForRadio.Where(n =>
n.BranchCode == "MNL1" &&
n.Slots > 0
&&
n.SlotCode == getDate
))
{
@Html.RadioButtonFor(model => model.ListSlotTimeForRadio, rTimeSlots.SlotTime,
new { htmlAttributes =
new Dictionary<string, object>
{
{ "id", "timeSlots" },
{ "class", "form-control" }
}
})
@rTimeSlots.SlotTime<br>
}
}
</div>
正如您在我的脚本中看到的那样,就是内联日期选择器。当我点击timepicker中的任何日期时,该值将传递给变量formatted_date。 formatted_date也将通过ajax传递给控制器(参见calendarDate)。然后将calendarDate作为myDate传递给model(参见控制器)。点击任何日期,radiobutton将基于foreach和.fadein(“slow”)出现在脚本中。但是,当我在foreach中添加&& n.SlotCode == getDate时,无法显示radiobutton列表。 getDate是myDate。
当我使用&& n.SlotCode ==“2/22/2019”,这是有效的,radiobutton列表正在显示。但是当我使用== getDate时,它不起作用。
因为我正在调试它,我正确地得到了日期。但是无线电按钮列表没有出现,我把它放在成功函数中。但它似乎无法正常工作。
我不知道出了什么问题。请帮忙。 TIA
你在ajax调用中缺少一个参数。加
$.ajax({
url: '@Url.Action("Create")',
type: 'POST',
contentType: 'application/html; charset=utf-8',
data: { calendarDate: formatted_date },
success: function (data) {}
目前你没有向控制器发送任何信息
你可以调试你的视图代码,看看下面的代码是否返回true:
.SlotCode == getDate
我假设以下条件属实
n.BranchCode ==“MNL1”&& n.Slots> 0
这是您无法看到单选按钮的唯一原因。