【发布时间】:2017-06-10 15:24:03
【问题描述】:
我正在尝试使用控制器的以下方法进行重定向:
[HttpPost]
public async Task<IActionResult> CreateSchedinaB([FromBody]ListAssociazioni listAss)
{
var userr = await _manager.GetUserAsync(User);
var listSchedine = await _context.Schedine.ToListAsync();
List<Associazioni> listAssocia = new List<Associazioni>();
Schedine schedina = new Schedine();
bool doppione = false;
foreach (var item in listSchedine)
{
if (listAss.NomeS == item.Nome)
{
doppione = true;
}
}
if (doppione == false)
{
schedina.Nome = listAss.NomeS;
schedina.KsProfile = userr.ProfileId;
schedina.Id = _context.Schedine.Count() + 1;
_context.Schedine.Add(schedina);
}
else
{
ViewData["Success"] = "Data was saved successfully.";
return RedirectToAction("Index");
}
foreach (var item in listAss._listAssoc)
{
var giocata = _context.Giocate.Where(c => c.Id == item.KsGiocata).First();
var partita = _context.Calendario.Where(c => c.Id == item.KsPartita).First();
Associazioni tmp = new Associazioni { KsGiocataNavigation = giocata, KsPartitaNavigation = partita, KsSchedinaNavigation = schedina };
_context.Associazioni.Add(tmp);
}
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
我不在视图中使用 asp-action 调用该方法,而是在 $.ajax post 中以这种方式调用该方法:
-查看:
`<div class="form-group">
<label asp-for="schedine.Nome" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input id="nomeSchedina" asp-for="schedine.Nome" class="form-control" />
<span asp-validation-for="schedine.Nome" class="text-danger"></span>
</div>
</div>
<a class="btn btn-default" onclick="InviaServer()" >CREA</a>`
-JS:
function InviaServer() {
var Nomes = $("#nomeSchedina").val();
if (Nomes == "" || Nomes == null) {
window.alert("Dai un nome alla tua schedina!");
return;
}
var listadef = {"NomeS": Nomes, "_listAssoc": json};
$.ajax({ // Send list to controller
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
url: "/Logged/CreateSchedinaB/",
type: "POST",
data: JSON.stringify(listadef),
success: function (response) {
console.log(response);
}
});
}
控制器 - 索引
[HttpGet]
public IActionResult Index()
{
return View();
}
问题是该方法并没有重定向到页面而是在浏览器控制台中发送页面...为什么?
对不起我的英语......我是一个“绝对初学者”
【问题讨论】:
-
您是否尝试在控制器中调用不同的操作
-
你在哪里“索引”操作?
-
在同一个控制器中
-
一切正常,但页面打印在控制台中。
-
将重定向网址发送到客户端,然后在客户端执行
location.href = redirecturl。
标签: javascript c# jquery ajax asp.net-core