在 ASP.NET MVC 中重定向到 post AJAX 调用后的控制器方法
Redirection in ASP.NET MVC to a controller method after the post AJAX call
当前设置 -
url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
data: JSON.stringify(quizResponse),
success: function (data) {
// Display the data on UI
}
以上 post 是一个 .NET api 控制器 returns quizResponse
.
[ValidateModelState, HttpPost]
public HttpResponseMessage Post(int id, QuizResponse value)
现在根据新要求,一旦 api 有响应,我应该重定向到另一个页面(一个 MVC 控制器,然后查看)。我该如何实现 -
public ActionResult ScptResult()
{
return View();
}
我也想过在 ajax 成功后重定向,但不确定它是否是正确的方法。
另外,如何在 post 之后将数据传递给 scptresult
控制器方法?
在您 JQuery 的成功函数中,将页面重定向到您的 MVC 页面:
window.location = '{controller}/{action}/{quizid}';
假设您使用标准 MVC 路由,并假设您更改 ScptResult 函数以接受参数,这样您就可以将数据传递给它。
public ActionResult ScptResult(int quizid)
{
return View();
}
我应该警告,我对 ajax 回复不是很熟悉,但希望这会接近。
API
[ValidateModelState, HttpPost]
public HttpResponseMessage Post(int id, QuizResponse value)
{
//Other stuff...
var redirect = string.Format(@"/controller/ScptResult/{0}", id);
return new HttpResponseMessage()
{
Content = new StringContent(redirect)
};
}
Javascript
url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
data: JSON.stringify(quizResponse),
success: function (data) {
window.location = data;
}
控制器
// This follows the default route.
// "/{controller}/{action}/{id}" where id is optional.
// window.location = "/ControllerName/ScptResult/OtherData"
public ActionResult ScptResult(string id)
{
return View();
}
在成功方法或任何地方完成工作后,在 java-脚本中使用
window.location = '@Url.Action("ScptResult", "YourControllerName")';
当前设置 -
url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
data: JSON.stringify(quizResponse),
success: function (data) {
// Display the data on UI
}
以上 post 是一个 .NET api 控制器 returns quizResponse
.
[ValidateModelState, HttpPost]
public HttpResponseMessage Post(int id, QuizResponse value)
现在根据新要求,一旦 api 有响应,我应该重定向到另一个页面(一个 MVC 控制器,然后查看)。我该如何实现 -
public ActionResult ScptResult()
{
return View();
}
我也想过在 ajax 成功后重定向,但不确定它是否是正确的方法。
另外,如何在 post 之后将数据传递给 scptresult
控制器方法?
在您 JQuery 的成功函数中,将页面重定向到您的 MVC 页面:
window.location = '{controller}/{action}/{quizid}';
假设您使用标准 MVC 路由,并假设您更改 ScptResult 函数以接受参数,这样您就可以将数据传递给它。
public ActionResult ScptResult(int quizid)
{
return View();
}
我应该警告,我对 ajax 回复不是很熟悉,但希望这会接近。
API
[ValidateModelState, HttpPost]
public HttpResponseMessage Post(int id, QuizResponse value)
{
//Other stuff...
var redirect = string.Format(@"/controller/ScptResult/{0}", id);
return new HttpResponseMessage()
{
Content = new StringContent(redirect)
};
}
Javascript
url: configMap.sitePath + "api/Quiz/" + quizResponse.quizId,
data: JSON.stringify(quizResponse),
success: function (data) {
window.location = data;
}
控制器
// This follows the default route.
// "/{controller}/{action}/{id}" where id is optional.
// window.location = "/ControllerName/ScptResult/OtherData"
public ActionResult ScptResult(string id)
{
return View();
}
在成功方法或任何地方完成工作后,在 java-脚本中使用
window.location = '@Url.Action("ScptResult", "YourControllerName")';