脚本:
<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>
正如您在我的脚本中看到的那样,是内联日期选择器。当我单击时间选择器中的任何日期时,该值将传递给变量formatted_date。 formatted_date也将通过ajax传递给控制器(请参见calendarDate)。然后将calendarDate作为myDate传递到模型(请参见控制器)。单击任何日期,单选按钮将基于脚本中的foreach和.fadein(“ slow”)出现。但是,当我在foreach中添加&& n.SlotCode == getDate时,单选按钮列表没有出现。 getDate是myDate。
当我使用&& n.SlotCode ==“ 2/22/2019”时,显示单选按钮列表。但是当我使用== getDate时,它不起作用。
在调试时,我正确地获取了日期。但是单选按钮列表没有出现,我将其放置在成功函数中。但似乎无法正常工作。
我不知道怎么了。请帮忙。 tia
答案 0 :(得分:1)
您在ajax调用中缺少参数。添加
$.ajax({
url: '@Url.Action("Create")',
type: 'POST',
contentType: 'application/html; charset=utf-8',
data: { calendarDate: formatted_date },
success: function (data) {}
此刻您什么都没发送给控制器
答案 1 :(得分:0)
您可以调试视图代码,看看下面的代码是否返回true:
.SlotCode == getDate
我假设满足以下条件
n.BranchCode ==“ MNL1” && n。插槽> 0
这是您看不到单选按钮的唯一原因。