2013-05-05 2 views
2

Мое требование показывает результат на той же странице без перенаправления на другую страницу. Я делаю это с Ajax.BeginForm(). но он перенаправляется на другую страницу. может ли кто-нибудь помочь этому?Ajax.BeginForm() в MVC4

Мой файл расслоение плотной:

<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

проверить, чтобы добавить jquery before (ver. 1.8.3, или проверить новую версию ненавязчивых ajax и jquery 1.9.2) – hVostt

+0

@hVostt: Есть ли какие-либо проблемы с js-файлом. если я удалю, чтобы дать ссылку, он перенаправляет другую страницу. показывающий результат. – Ram

+0

в AjaxOptions add InsertionMode = InsertionMode.Replace, должен работать, если jquery добавлен до – hVostt

ответ

1

возвращение в JSON. Думаю, это сработает для вас.

+0

я сделал. Плагин Js размещен на локальной странице. теперь работает. – Ram

0

Вы можете сделать это двумя способами ...

Решение 1: Вы должны создать частичный вид внутри вашей папке// Views счета с содержанием и вернуть его.

Контроллер:

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

Solution2: Просто вернуть ту же точку зрения и использовать переменную ViewBag отправить любую строку в представлении, как это ...

Контроллер:

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

Вид:

@ViewBag.VariableName 
Смежные вопросы