2013-05-05 62 views
2

我的要求是在同一頁面中顯示結果,並將其重定向到另一個頁面。我正在用Ajax.BeginForm()來做這件事。但它重定向到另一個頁面。任何人都可以幫助嗎?MVC4中的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

檢查以添加jQuery之前(ver。 1.8.3,或檢查新版本的不顯眼的ajax和jquery 1.9.2) – hVostt 2013-05-05 09:31:07

+0

@hVostt:js文件有問題。如果我刪除給它參考重定向另一頁。顯示結果。 – Ram 2013-05-05 09:50:24

+0

在AjaxOptions添加InsertionMode = InsertionMode.Replace,必須工作,如果jQuery之前添加 – hVostt 2013-05-05 10:55:45

回答

1

回報JSON。我認爲它會爲你工作。

+0

我已經完成了。 Js插件放置在本地頁面。工作中。 – Ram 2013-05-24 14:21:09

0

你可以這樣做兩種方式...

解決方案1:你必須創建/查看/賬戶文件夾內的局部視圖與您的內容,並將其返回。

控制器:

[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