【发布时间】:2016-04-18 18:36:28
【问题描述】:
我试图将数据从一个控制器传递到另一个控制器。 我有一个需要解析到消息控制器的宠物。 基本上我有一个创建宠物的用户,然后其他用户可以通过 WebAPP 向其他宠物主人发送消息。 在宠物/详细信息上,我有一个按钮调用操作 SendMessage(如下所示)
目前我收到一个未处理的异常:InvalidOperationException:尚未为此应用程序或请求配置会话。 Microsoft.AspNet.Http.Internal.DefaultHttpContext.get_Session()
PetsController.CS:
public IActionResult SendMessage(int id)
{
Pet PetData = _context.Pet.Single(m => m.ID == id);
TempData["PetData"] = PetData;
return RedirectToAction("Create", "Message");
}
然后我需要将该宠物对象移动到我的 messagesController:
// POST: Messages/Create
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(Message message)
{
if (ModelState.IsValid)
{
_context.Message.Add(message);
Pet Data = TempData["PetData"] as Pet;
message.SentTo = Data.CreatedBy;
message.Subject = Data.Name;
_context.SaveChanges();
return RedirectToAction("Index");
}
return View(message);
}
我希望有人可以帮助我解决这个问题。 顺便提一下,我是 MVC 新手。
【问题讨论】:
-
尝试研究该错误。您使用哪个 ASP.NET 版本?
-
我使用 ASP.NET 版本 5。
-
Thx Kartikeya,我克服了异常,错误是我没有正确声明会话依赖项。但现在我得到:处理请求时数据库操作失败。 InvalidOperationException:序列不包含任何元素。我怀疑这可能是我使用不正确的 TempData 方法。
标签: c# asp.net-mvc