2016-03-31 7 views
0

MVCビューでセッション値をJavascriptからDateTimePickerに設定するにはどうすればよいですか?MVCビューとDateTimePickerでセッション変数を設定

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

このコードは正常に動作しますが、コード

@Session["Data"] = startDate; 

に動作していない:

私はこのコードを持っています。どうすればここにデータを保存できますか?

は、サーバーで実行されますあなたのかみそりビュー内のすべての

答えて

0

あなたのC#コードに感謝します。しかし、あなたのJavaScriptコードはクライアント上で実行されます。だからあなたはあなたの質問にあるようにあなたのJavaScriptの中にC#変数の値を設定することはできません。

あなたができることは、エンドポイントへのajax呼び出しを行い、そこでセッションの値を設定することです。したがって、ajax呼び出しを処理するアクションメソッドを作成してください。

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

JavaScriptコードから、このエンドポイントを呼び出して日付の値を渡します。

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

あなたは代わりにハードコーディングのアクションメソッドOパスを生成するUrl.Actionヘルパーメソッドを使用して検討することができます。

0

javascriptとc#コードをマージしています。

javascriptがクライアント側で実行されるため、startDate(javascript)をSession(c#)に設定することはできません。

たstartDateがある場合、それはあなたを助けるでしょうDateTime.Nowに等しいです。

<script> 
    if('@Session["Data"]'===""){ 
     $('#datetimepicker').datepicker('setDate', new Date()); 
     @(Session["Data"] = DateTime.Now); 
    } else { 
     $('#datetimepicker').datepicker('setDate', '@Session["Data"]'); 
    } 
</script>