我还是编程的新手,正在开展这个项目,在使用实体框架将数据提交到SQL中的表后,我遇到了困难。虽然这一切都很好,但我正在努力恢复我刚刚提交的记录。对我来说,挑战在于结合多个参数来识别记录。
目标是根据 UserID 和 errandID 返回记录。 我的控制器如下所示:
public ActionResult errandPreview()
{
var userID = User.Identity.GetUserId();
var errandID = DB.errandList.Find(userID).ID;
var model = new errands
{
//Title = DB.errandList.Find(errandID).Title.ToString(),
Title = DB.errandList.Where(x => x.ID == errandID).FirstOrDefault().ToString()
};
return View();
}
我正在尝试从登录用户获取UserID,然后通过此属性选择errandID以最终获得差事的标题(以及其他内容......)但我无法获得它完成了。感谢您的帮助!
答案 0 :(得分:1)
首先,如果你只是插入一条记录,你可能会回到某种带有列表的索引视图。从那里你可以将密钥作为参数传递给errandPreview动作。
假设您只想调用某种显示操作:
public ActionResult errandPreview()
{
var userID = User.Identity.GetUserId();
// This assumes 1 errand for a given user
// Otherwise you will need to pass the errandId in as a parameter, ViewBag, etc.
var errandToPreview = DB.errandList
.OrderByDescending(el => el.ID)
.FirstOrDefault(el => el.ID == userID);
if (errandToPreview == null) { // handle error }
// You could just send the errand to the view to display
// return View(errandToPreview);
// Otherwise build a viewmodel
var viewmodel = new ErrandViewModel
{
Title = errandToPreview.Title,
OtherErrandField = errandToPreview.OtherField,
...
};
return View(viewmodel);
}