私はMVCとDevExpressが比較的新しいです。私は日付フィールドを取ってコントローラに渡す必要があるUIを持っています。非常に単純なタスク。MVCボタンが発動しないHttpPostを使用したActionResult
私のように見えます。
<script type="text/javascript">
var positionDate = "1/1/2014";
function AddClick(s, e) {
debugger;
positionDate = LockedDateToAdd.GetDate().toDateString();
$.ajax({
type: "POST",
url: "/LockedDate/AddLockedDate",
data: { positionDate: positionDate },
success: function (msg) { LockedDateGridView.PerformCallback(); }
});
}
</script>
@{
ViewBag.Title = "Locked Dates";
}
<h4>Locked Dates</h4>
@using (Html.BeginForm())
{
<table>
<tr>
<td>
@Html.DevExpress().DateEdit(settings =>
{
settings.Name = "LockedDateToAdd";
settings.Date = DateTime.Today;
settings.Properties.AllowNull = false;
settings.Properties.DateOnError = DateOnError.Today;
settings.Properties.CalendarProperties.ShowWeekNumbers = false;
}).GetHtml()
</td>
<td>
@Html.DevExpress().Button(settings =>
{
settings.Name = "LockedDateAdd";
settings.Text = "Add";
settings.ClientSideEvents.Click = "AddClick";
settings.UseSubmitBehavior = false;
}).GetHtml()
</td>
</tr>
</table>
}
私は、AddClickメソッドを使用してDateを渡すことを検討しています。
[HttpPost]
public ActionResult AddLockedDate(string positionDate)
{
DateTime dateValue;
if (DateTime.TryParse(positionDate, out dateValue))
{
_dataAccess.AddLockedDate(dateValue);
}
return Content("");
}
問題がある、私のコードはAddLockedDateのActionResultを打つされていません。
コントローラは次のようになります。 [HttpPost]を削除すると、ヒットしますが、positionDateは空になります。
私はここで何が欠けていますか?何か案が。 ありがとうございます。
あなたはMVCのどのバージョンを使用していますか?私はあなたのコードに間違ったことは何も見えません。これを読んだことはありますか? http://stackoverflow.com/questions/5980389/properway-to-use-ajax-post-in-jquery-to-pass-model-from-strongly-typed-mvc3-vie – Etienne