Asp.net mvc 4 MVC4中的Ajax.BeginForm()

Asp.net mvc 4 MVC4中的Ajax.BeginForm(),asp.net-mvc-4,ajax.beginform,Asp.net Mvc 4,Ajax.beginform,我的要求是在同一页中显示结果,而不重定向到另一页。我正在使用Ajax.BeginForm()完成这项工作。但它会重定向到另一个页面。有人能帮忙吗 我的js文件: <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script> @using (Ajax.BeginForm("UserAccountInfo", "Account"

我的要求是在同一页中显示结果,而不重定向到另一页。我正在使用Ajax.BeginForm()完成这项工作。但它会重定向到另一个页面。有人能帮忙吗

我的js文件:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
 @using (Ajax.BeginForm("UserAccountInfo", "Account",  new AjaxOptions {UpdateTargetId = "result" }))
 {
@Html.ValidationSummary(true)

<div id="result"></div>

<div class="t-12-user">First Name </div>

<div> @Html.TextBoxFor(model => model.FirstName, new { @class = "user-input-bx", MaxLength = "50"})</div>

<div class="t-12-user"> Email Address </div>

<div> @Html.TextBoxFor(model => model.EmailId, new { @class = "user-input-bx", MaxLength = "50" })</div>

<div><input type="submit" value="Save"  /> </div>

    }
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
  return Content("Thank you for subscribe", "text/html");
}
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
return PartialView("_yourPartialView", model);
}
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
ViewBag.VariableName = "Thank you for subscribe";
return View();
}
@ViewBag.VariableName
web.config:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
 @using (Ajax.BeginForm("UserAccountInfo", "Account",  new AjaxOptions {UpdateTargetId = "result" }))
 {
@Html.ValidationSummary(true)

<div id="result"></div>

<div class="t-12-user">First Name </div>

<div> @Html.TextBoxFor(model => model.FirstName, new { @class = "user-input-bx", MaxLength = "50"})</div>

<div class="t-12-user"> Email Address </div>

<div> @Html.TextBoxFor(model => model.EmailId, new { @class = "user-input-bx", MaxLength = "50" })</div>

<div><input type="submit" value="Save"  /> </div>

    }
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
  return Content("Thank you for subscribe", "text/html");
}
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
return PartialView("_yourPartialView", model);
}
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
ViewBag.VariableName = "Thank you for subscribe";
return View();
}
@ViewBag.VariableName


任何人都可以帮忙,成功消息应该显示在同一页中。

返回为json。我想这对你会有用的。

你可以用两种方法来做

解决方案1:您必须在/Views/Account文件夹中创建包含内容的局部视图,然后将其返回

控制器:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
 @using (Ajax.BeginForm("UserAccountInfo", "Account",  new AjaxOptions {UpdateTargetId = "result" }))
 {
@Html.ValidationSummary(true)

<div id="result"></div>

<div class="t-12-user">First Name </div>

<div> @Html.TextBoxFor(model => model.FirstName, new { @class = "user-input-bx", MaxLength = "50"})</div>

<div class="t-12-user"> Email Address </div>

<div> @Html.TextBoxFor(model => model.EmailId, new { @class = "user-input-bx", MaxLength = "50" })</div>

<div><input type="submit" value="Save"  /> </div>

    }
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
  return Content("Thank you for subscribe", "text/html");
}
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
return PartialView("_yourPartialView", model);
}
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
ViewBag.VariableName = "Thank you for subscribe";
return View();
}
@ViewBag.VariableName
解决方案2:只需返回相同的视图,并使用ViewBag变量将任何字符串发送到视图,如下所示

控制器:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
 @using (Ajax.BeginForm("UserAccountInfo", "Account",  new AjaxOptions {UpdateTargetId = "result" }))
 {
@Html.ValidationSummary(true)

<div id="result"></div>

<div class="t-12-user">First Name </div>

<div> @Html.TextBoxFor(model => model.FirstName, new { @class = "user-input-bx", MaxLength = "50"})</div>

<div class="t-12-user"> Email Address </div>

<div> @Html.TextBoxFor(model => model.EmailId, new { @class = "user-input-bx", MaxLength = "50" })</div>

<div><input type="submit" value="Save"  /> </div>

    }
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
  return Content("Thank you for subscribe", "text/html");
}
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
return PartialView("_yourPartialView", model);
}
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
ViewBag.VariableName = "Thank you for subscribe";
return View();
}
@ViewBag.VariableName
查看:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
 @using (Ajax.BeginForm("UserAccountInfo", "Account",  new AjaxOptions {UpdateTargetId = "result" }))
 {
@Html.ValidationSummary(true)

<div id="result"></div>

<div class="t-12-user">First Name </div>

<div> @Html.TextBoxFor(model => model.FirstName, new { @class = "user-input-bx", MaxLength = "50"})</div>

<div class="t-12-user"> Email Address </div>

<div> @Html.TextBoxFor(model => model.EmailId, new { @class = "user-input-bx", MaxLength = "50" })</div>

<div><input type="submit" value="Save"  /> </div>

    }
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
  return Content("Thank you for subscribe", "text/html");
}
 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
return PartialView("_yourPartialView", model);
}
[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
ViewBag.VariableName = "Thank you for subscribe";
return View();
}
@ViewBag.VariableName

检查以添加jquery之前的版本(1.8.3版,或检查unobtrusive ajax和jquery 1.9.2的新版本)@hvost:js文件有任何问题。如果我删除以提供参考,它将重定向到另一个页面。在AjaxOptions中显示result.in add InsertionMode=InsertionMode.Replace,如果jquery是在表单主体中删除之前添加的,则必须工作。id不是必需的,表单是自动集装箱,我无法获取。它将重定向到另一个页面。js文件可能有任何问题。