我正在学习ASP.net MVC - 5而且我遇到了一个问题。所以我需要在成功的Ajax Post Request之后打开一个URL。但我也希望将一个值传递给新URL的Controller Action。以下就是我现在所拥有的。
AJAX CALL
$.ajax({
url: URL,
type: 'POST',
data: data,
success: function (result) {
if (result == true) {
int TEMPVAR = 2;
DisplayError('Save Successful', 'Success', function () {
window.location.href = '/Settings/Customize/'; });
},
error: function (error) {
}
});
控制器操作
[AuthorizeSettings]
public ActionResult Customize()
{
//I want to be able to access TEMPVAR value here
// code removed for brevity
return View(configData);
}
问题:如何将TEMPVAR data
传递给Customize Action
点数:
我知道有一些传递数据的方法。 TempData,Viewbag,SessionVariable,在URL请求中嵌入TEMP值,匿名对象,ViewData,类的静态变量,全局变量,JSON。但我完全混淆了如何传递数据。我是新手,请在这里指导我。
修改
AJAX CALL
$.ajax({
url: URL,
type: 'POST',
data: data,
success: function (result) {
if (result == true) {
int TEMPVAR = 2;
DisplayError('Save Successful', 'Success', function () {
window.location.href = '/Settings/Customize/'; });
TEMPDATA["value"] = TEMPVAR;
},
error: function (error) {
}
});
答案 0 :(得分:1)
根据评论,您希望将数据从SaveStyles
发送到Customize
。如果是,您可以使用TempData
-
public class PersistController : Controller
{
[HttpPost]
public ActionResult SaveStyles()
{
TempData["Status"] = true;
TempData["Val"] = 4;
return Json(true);
}
}
public class SettingsController : Controller
{
public ActionResult Customize()
{
bool status = Convert.ToBoolean(TempData["Status"]);
int val = Convert.ToInt32(TempData["Val"]);
return View();
}
}