我在mvc4中构建事件日历,我使用JQuery在JavaScript中构建了简单的日历。我可以点击相应的日期来获取日期。我想在控制器的一个动作中获取此日期,以便我可以使用此日期保存在数据库中。
HomeController:index.cshtml
:
function getDate() {
$('.cal_daybox').on('click', function () {
var timestamp = parseInt($(this).attr('id'));
var day = new Date(timestamp);
alert("You clicked " + day.toDateString());
var url = '@Url.Content("~/Events/Index")';
// window.location = url;
var date =day.toDateString();
$.ajax({
type: "POST",
url: url,
data: date,
dataType:"json"
});
return false;
});
}
现在我可以在调试器中获取此日期,但我想在其他视图中显示此日期。你能否告诉我如何将这个日期值传递给控制器,因为下面的代码不起作用?
Eventscontroller.cs
:
[HttpPost]
public ActionResult Index(string date)
{
if (Request.IsAjaxRequest())
{
return Json(date, JsonRequestBehavior.AllowGet);
}
return RedirectToAction("Index");
}
答案 0 :(得分:2)
您可能需要@Url.Action("actionName", "controllerName")
而不是@Url.Content()
。 @Url.Content
用于访问文件而不是控制器操作。或者,如果您为该操作定义了路由,则可以使用@Url.RouteUrl
。
此外,您可能希望更改data
以使用data: { date: day.toDateString() }
来匹配操作的参数。