既存のMVC3プロジェクトのコードを使用して、MVC4で新しいプロジェクトを開始しました。フォームに特定のDIVをajaxリロードさせることはできますが、通常の送信メソッドを使用せず、テストdoSomthing()javascript関数を使用するだけです。私は何が欠けていますか?
明確にするために:最初のボタンは正しく機能しませんが、2番目のボタンは機能します-しかし、私はそれをそのようにしたくありません。
見る
@using (Ajax.BeginForm("Method1", null,
new AjaxOptions { HttpMethod = "post", UpdateTargetId = "divPartial1" },
new { id = "form1" }))
{
<div class="data">
@Html.LabelFor(x => x.TotalSubmitted, new { @class = "total" })<div class="number total">@Html.FormatValue(Model.TotalSubmitted, "{0:n0}")</div>
...
</div>
<div class="details">
<div id="divPartial1">
@Html.Partial("ReportDashboardAppPartial")
</div>
</div>
<div style="text-align: center;">
<button type="submit" class="k-button"><span class="k-icon k-i-search" /></button>
<button type="button" name="Save" value="Save" onclick="doSomething(); return false;"><span class="k-icon k-i-search" /></button>
</div>
}
<script type="text/javascript">
function doSomething() {
$.ajax({
url: '@Url.Action("Method1", "Controller")',
type: 'post',
data: $('form#form1').serialize(),
success: function (result) {
$('#divPartial1').html(result);
}
});
}
</script>
_レイアウト
@model BaseViewModel
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
<link href="@Url.Content("~/Content/kendo.compatibility.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/kendo/2012.3.1114/kendo.common.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/kendo/2012.3.1114/kendo.dataviz.min.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/kendo/2012.3.1114/kendo.default.min.css")" rel="stylesheet" type="text/css" />
@RenderSection("styles", false)
<script src="@Url.Content("~/Scripts/kendo/2012.3.1114/jquery.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2012.3.1114/kendo.all.min.js")"></script>
<script src="@Url.Content("~/Scripts/kendo/2012.3.1114/kendo.aspnetmvc.min.js")"></script>
@RenderSection("scripts", false)
</head>
<body>
@Html.Partial("_AlertWindow")
<div id="wrapper">
<header>
<div id="logindisplay">
@Html.Partial("_LoginPartial")
</div>
<a href="@Url.Action("Index", "Home")">
<div id="logo"></div>
</a>
<div id="title">
<h1>Ha!</h1>
</div>
@(Html.Kendo().Menu().Name("Menu").BindTo("Main").SecurityTrimming(true))
</header>
<div id="main">
@RenderBody()
</div>
<footer>
<div id="version">@Html.ActionLink("Version " + @Model.CurrentVersion, "About", "Home")</div>
</footer>
</div>
@RenderSection("end_scripts", false)
</body>
</html>
私はこれがうまくいくはずだと知っています。