我已经在MVC视图中添加了一个jquery datepicker。此视图具有局部视图。我需要根据datepicker选择的日期过滤我的局部视图。我需要在部分视图上显示基于日期的按钮。
我添加了这样的局部视图:
<div id="dvGames" class="cornerdate1">
<% Html.RenderPartial("Partial3"); %>
</div>发布于 2011-03-10 01:38:04
这里有几个问题需要解决:
您的jquery将如下所示:
$("#myDatePicker").datepicker({
onSelect: function(dateText, inst) {
$("#dvGames").load('/Home/Partial3/' + dateText');
}
});您的控制器操作将如下所示:
public ActionResult Partial3(DateTime? id)
{
MyModel model = new MyModel();
// Populate model
return PartialView(model);
}请记住,只有当您的站点位于根目录中时,"/Home/Partial3/“才是路径。您应该使用Url.Action来确定实际路径。通常,我使用Ajax.BeginForm (您可以在上面找到很多示例)代替jquery.load,然后使用jquery在表单上调用onsubmit。通过这种方式,我的MVC标记在Ajax.BeginForm的参数中定义了分部视图的URL,然后我的jquery代码是完全可移植的,因为它只提交一个特定的表单,而不需要知道任何关于路径的信息。您要转换为datepicker的输入标记必须位于Ajax.BeginForm定义的表单内,以便将其提交给操作。您的局部视图不需要位于表单内部。只需指定"dvGames“作为UpdateTargetId,Ajax调用的结果将放在您的div中。
这个jquery看起来像这样:
$("#myDatePicker").datepicker({
onSelect: function(dateText, inst) {
$(this).closest('form').trigger('onsubmit');
}
});希望这能有所帮助。
https://stackoverflow.com/questions/5210185
复制相似问题