我被要求更详细地转发这个问题。
我是MVC的新手,我很欣赏任何支持性解释,尽管我非常基于.NET开发。
方案
我有一个日历,当日历被选中时会发布信息。它看起来像这样:
@foreach (var OfflineCalendar in Model.OfflineCalendars.Skip(1))
{
<li data-name="@OfflineCalendar.Name" data-val="@OfflineCalendar.Id">@Html.ActionLink(OfflineCalendar.Name, "Index", new { Id = OfflineCalendar.Id }, new { @class = "location" })</li>
}
日历仅返回一个月的数据,该数据将一些数据传递给ContentResult方法。
我已为存档数据添加了一个复选框。
<label>
Archived
@Html.CheckBox("checkedArchive")
</label>
我的任务
我想添加一个存档按钮,用户可以在其中查看历史数据。如果选中此复选框,则会更改ContentResult Data方法中的某些参数。
困境
在.NET中,我会轻松检查是否选中了复选框,并根据所选的日历触发事件。我正在努力做MVC等价物。
我想要做的就是检查选择日历位置时是否检查过它。如果是,返回一个真或假的bool。哪个会影响ContentResult。
我不想使用Ajax。我只是想检查选择位置时是否选中了复选框。就这样。
以下是我提出的相关问题:clicky
感谢您的阅读。
答案 0 :(得分:2)
听起来您希望通过现有代码完成所有服务器端,只想访问复选框的值。
如果这是正确的,我会修改ViewModel以包含布尔“IncludeArchived”,然后将其添加到您的页面:
@Html.CheckBoxFor(model => model.IncludeArchived)
当您提交表单时,该值应包含在您的模型中。
或者,您可以在服务器端检查Request.Form [“checkedArchive”]并将其解析为布尔值。
答案 1 :(得分:0)
您需要在jquery中编写复选框事件,并检查表单后是否选中复选框并从服务器返回内容,否则不要发布表单。
像这样:
查看:
<form action="" method="POST" id="MyForm">
<label>
Archived
@Html.CheckBox("checkedArchive")
</label>
</form>
Jquery的:
$('#checkedArchive').on('change',function(){
if(this.checked)
{
$('#MyForm').submit();
}
});