在MVC视图和DateTimePicker中设置会话变量

时间:2016-03-31 14:50:04

标签: javascript asp.net-mvc

如何在DateTimePicker中从Javascript设置MVC视图中的会话值?

我有这段代码:

if('@Session["Data"]'==""){
  $('#datetimepicker').datepicker('setDate', startDate); @Session["Data"] = startDate;}
  else { $('#datetimepicker').datepicker('setDate', '@Session["Data"]'); }

此代码工作正常,但代码

@Session["Data"] = startDate;

不工作。我如何在这里保存数据?

谢谢大家

2 个答案:

答案 0 :(得分:0)

剃刀视图中的C#代码在服务器中执行。但是你的javascript代码在客户端上执行。因此,您无法像在问题中那样在javascript中设置c#变量值。

您可以做的是对端点进行ajax调用,并在会话中设置值。因此,创建一个动作方法来处理ajax调用

[HttpPost]
public ActionResult SetDate(DateTime date)
{
  // Set to session here
  return Json( new { Status="Success"});
}

现在,从您的javascript代码中,使用ajax调用此端点并传递日期值。

var startDate= "Read the date value here";
$.post("YourControllerName/SetDate", { date = startDate},function(r){
    if(r.Status==="Success")
    {
      alert("Date is now in session")
    }
});

您可以考虑使用Url.Action辅助方法生成操作方法的路径,而不是硬编码。

答案 1 :(得分:0)

您正在合并javascript和c#代码。

您无法将startDate(javascript)设置为Session(c#),因为javascript在客户端运行。

如果 startDate 等于 DateTime.Now ,它会帮助您。

{{1}}