您好,我在控制器中设置了一种方法,可以将一些数据保存到组中。
当用户尝试再次保存到该组时,它将返回错误并返回视图。但是,由于我使用的是查询字符串,因此我想返回视图并将查询字符串添加到URL。
public async Task<IActionResult> Create([Bind("Id,GroupId,PayCompId,Client")] PayComponentGrouping payComponentGrouping)
{
string referer = Request.Headers["Referer"].ToString();
var GroupId = payComponentGrouping.GroupId;
var PayId = payComponentGrouping.PayCompId;
var Db = payComponentGrouping.Client;
if (ModelState.IsValid)
{
IList<PayComponentGrouping> items = _context.PayComponentGrouping
.Where(o => o.GroupId == GroupId)
.Where(o => o.PayCompId == PayId)
.Where(o => o.Client == Db)
.ToList();
var GroupName = _context.payComponentGroups
.Where(o => o.GroupId == GroupId)
.Select(o => o.GroupName)
.FirstOrDefault();
if (items.Count == 0)
{
_context.Add(payComponentGrouping);
await _context.SaveChangesAsync();
return RedirectToAction("Details", "DatabaseLists", new { id = Db });
}
ViewBag.Error = $"Already belongs to Group: {GroupName}";
}
return View();
}
因此,在返回View()中,我想添加PayId和Db。我最初使用return Redirect(referer)将用户重定向到具有查询字符串的页面。由于是重定向,因此不会显示错误消息。
答案 0 :(得分:3)
我知道了。
我将ViewBag更改为TempData,然后返回了重定向。
TempData["Error"] = $"Already belongs to Group: {GroupName}";
return Redirect(referer);
然后将错误消息添加到视图。