-1
私の要件は、ボタンをクリックすると、日付を選択できるダイアログが開き、できれば開始日と終了日です。 ok/submitをクリックするとdatetimeがコントローラの[HttpPost]アクションメソッドに渡されます。 これは残念ながら、それはActivate]ボタンをクリックしたときに、ここでポップアップダイアログからdatetimeをmvcコントローラーに渡す方法
input name="ActivateBtn" type="submit" class="btn btn-primary" value="Activate" onclick="opendatedialog()" />
<script>
function opendatedialog() {
$("#datepickerdialog").dialog({
height: 300,
width: 500,
modal: true,
resizable: false,
buttons: {
"OK": function() {
var viewUrl = '@Url.Action("Activate", "User")';
$.post(viewUrl, new { startDate: $('.datepickerstart').val(), endDate: $('.datepickerend').val() });
$(this).dialog("close");
return true;
},
"Cancel": function() { $(this).dialog("close"); return false; }
},
open: function() {
$(this).siblings('.ui-dialog-buttonpane').find("button:contains('OK')").focus();
}
});
}
$(function() {
$('.datepickerstart').datepicker(
{
minDate: 0,
dateFormat: 'yy-mm-dd'
}).datepicker("setDate", "0");
$('.datepickerend').datepicker(
{
minDate: 0,
dateFormat: 'yy-mm-dd'
}).datepicker("setDate", "2099/12/31");
});
// UserControllerで
[HttpPost]
public ActionResult Activate(DateTime startDate, DateTime endDate)
{
//TO DO
return RedirectToAction("Index");
}
を動作しませんでした...私は試したもので、日付ピッカーとのダイアログがポップアップ表示されます。しかしその後、okボタンのクリックは何もしません。
関数のclickイベントのokボタンをキャプチャし、コントローラアクションに向けたAJAXコールポストを作成して、必要なものを渡します。これらの部分のそれぞれは、簡単に基本的な例を検索します。あなたはあなたの要件に基づいてスパイダーできます。 Razorマークアップを使用していてJSが別のファイルではなく埋め込まれている場合は、URLパスを手動で心配することなく、通話のためのコントローラへのURL.Actionリンクを簡単に作成できます。 –
ユーザーを別のページにリダイレクトする必要がありますか?または、あなたはajaxを介してあなたの行動を呼び出すと、同じページにユーザーを保持する必要がありますか? – Alisson
ajaxの全体のポイントは、同じページにとどまることです。あなたの 'return RedirectToAction(" Index ");は、ajax呼び出しが決してリダイレクトしないので無意味です。リダイレクトする場合は、通常のフォーム送信を行います。 –