MVC4中的Ajax.BeginForm()

时间:2013-05-05 09:05:18

标签: 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",  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");
}

的web.config:

 <add key="ClientValidationEnabled" value="true" />
 <add key="UnobtrusiveJavaScriptEnabled" value="true" />

任何人都可以帮助这个,成功的消息应该显示在同一页面上。

2 个答案:

答案 0 :(得分:1)

json 返回。我认为这对你有用。

答案 1 :(得分:0)

你可以这两种方式......

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

<强>控制器:

[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
return PartialView("_yourPartialView", model);
}

解决方案2:只需返回相同的视图并使用ViewBag变量将任何字符串发送到视图中,就像这样......

<强>控制器:

[HttpPost]
public ActionResult UserAccountInfo(RegisterModel Model)
{
// code
ViewBag.VariableName = "Thank you for subscribe";
return View();
}

查看:

@ViewBag.VariableName