【发布时间】:2021-10-09 16:02:51
【问题描述】:
我正在努力将数据从一列复制到下一列。我希望foodId 和MenuItemId 相同。有没有办法在控制器中添加代码以使两列具有相同的值?这是目前的样子:
FoodId | MenuItemId | Rating
---------+------------+------
1 | NULL | 5
1 | NULL | 4
2 | NULL | 5
1 | NULL | 5
我希望我的最终结果如下所示:
FoodId | MenuItemId | Rating
---------+------------+------
1 | 1 | 5
1 | 1 | 4
2 | 2 | 5
1 | 1 | 5
这是我的控制器:
public IActionResult Create()
{
var listOfNumbers = new List<int>() { 1, 2, 3, 4, 5 };
var listOfRatings = listOfNumbers.Select(x => new { Id = x, Value = x.ToString() });
ViewData["Rating"] = new SelectList(listOfRatings, "Id", "Value");
ViewData["FoodId"] = new SelectList(_context.MenuItems, "Id", "Name");
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Title,FoodReview,Rating,Date,FoodId,MenuItemId,UserId")] Reviews reviews)
{
if (ModelState.IsValid)
{
var userId = _userManager.GetUserId(HttpContext.User);
reviews.UserId = userId;
reviews.Date = DateTime.Now;
_context.Add(reviews);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
var listOfNumbers = new List<int>() { 1, 2, 3, 4, 5 };
var listOfRatings = listOfNumbers.Select(x => new { Id = x, Value = x.ToString() });
ViewData["Rating"] = new SelectList(listOfRatings, "Id", "Value", reviews.Rating);
ViewData["FoodId"] = new SelectList(_context.MenuItems, "Id", "Name", reviews.FoodId);
return View(reviews);
}
【问题讨论】:
-
为什么其他列也需要相同的数据?
-
这是一个来不及修复的错误,但是,在另一列中使用相同的数据将解决问题。
-
添加行reviews.MenuItemId = reviews.FoodId
-
这会在 Post Create 方法下进行吗?
-
是的,在此行下方是reviews.UserId……
标签: c# asp.net-core-mvc localdb