我的要求是在同一页面显示结果,而不是重定向到另一个页面。我正在使用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" />
任何人都可以帮助这个,成功的消息应该显示在同一页面上。
答案 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