C# 使用Json的MVC重定向操作
目的:编写的代码假定使用Json保存所有内容并重新定向到操作 问题: 当前使用Json的重定向不允许按假设进行重定向。 返回新的JsonResult{Data=new{status=status} 以下代码仅供参考:寻求建议: 视图代码C# 使用Json的MVC重定向操作,c#,json,ajax,asp.net-mvc,C#,Json,Ajax,Asp.net Mvc,目的:编写的代码假定使用Json保存所有内容并重新定向到操作 问题: 当前使用Json的重定向不允许按假设进行重定向。 返回新的JsonResult{Data=new{status=status} 以下代码仅供参考:寻求建议: 视图代码 $.ajax({ url: '/SA/Save', type: "POST", data: JSON.stringify(data), dataType: "JSON", contentType: "applicatio
$.ajax({
url: '/SA/Save',
type: "POST",
data: JSON.stringify(data),
dataType: "JSON",
contentType: "application/json",
success: function (d) {
//check is successfully save to database
if (d.status == true) {
//will send status from server side
alert('Successfully done.');
window.location.href = d.Url;
//clear form
t = [];
d = [];
r = [];
$('#SN').val('');
$('#SA').val('');
$('#t').empty();
$('#d').empty();
$('#r').empty();
}
else {
alert('Failed');
}
$('#submit').val('Save');
},
});
控制器
public JsonResult Save(SAVM O,)
{
bool status = false;
var userId = User.Identity.GetUserId();
if (ModelState.IsValid)
{
SA s = new SA
{
}
_db.SA.Add(O)
_db.SaveChanges();
status = true;
}
else
{
status = false
}
return new JsonResult { Data = new { status = status } };
}
public JsonResult Save(SAVM O,)
{
var userId = User.Identity.GetUserId();
if (ModelState.IsValid)
{
SA s = new SA
{
}
_db.SA.Add(O)
_db.SaveChanges();
return Json(new { Url = "F/SA" });
这里要像这样重定向:
return RedirectToAction("F", "SA");
但是使用JsonResult
解决方案
看法
控制器
public JsonResult Save(SAVM O,)
{
bool status = false;
var userId = User.Identity.GetUserId();
if (ModelState.IsValid)
{
SA s = new SA
{
}
_db.SA.Add(O)
_db.SaveChanges();
status = true;
}
else
{
status = false
}
return new JsonResult { Data = new { status = status } };
}
public JsonResult Save(SAVM O,)
{
var userId = User.Identity.GetUserId();
if (ModelState.IsValid)
{
SA s = new SA
{
}
_db.SA.Add(O)
_db.SaveChanges();
return Json(new { Url = "F/SA" });
}这里有两个选项,您可以根据自己的需求决定您更喜欢哪一个
success
事件中应重定向到的URL:
return Json(new { url = "/F/SA" });
然后:
success: function (d)
{
window.location.url = d.url;
}
success: function (d)
{
$("#someElement").html(d);
}
return View("some view...");
然后:
success: function (d)
{
window.location.url = d.url;
}
success: function (d)
{
$("#someElement").html(d);
}
ajax的全部目的是保持在同一页面上。如果您想重定向,不要使用ajax。是的,这是可以理解的,但是如果使用JsonResult,那么是否有任何关于重定向的建议或解决方法