我试图用visual studio 2010学习自己的C#MVC4.
我想要做的是在某人用户名上选择的1个视图上获得2个模型的完整输出.
所以如果我去/团队/细节/ 1
我将从模特队员和球队获得所有信息.
楷模:
public class Players { public int ID { get; set; } public string Name { get; set; } public int price { get; set; } public string coach { get; set; } public string Team { get; set; } } public class Teams { public int ID { get; set; } public string Name { get; set; } public string coach { get; set; } }
调节器
using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Mvc; using voetbal.Models; namespace voetbal.Controllers { public class TeamsController : Controller { private TeamsDBContext db = new TeamsDBContext(); // // GET: /Teams/ public ActionResult Index() { return View(db.Teams.ToList()); } // // GET: /Teams/Details/5 public ActionResult Details(int id = 0) { Teams teams = db.Teams.Find(id); if (teams == null) { return HttpNotFound(); } return View(teams); } // // GET: /Teams/Create public ActionResult Create() { return View(); } // // POST: /Teams/Create [HttpPost] public ActionResult Create(Teams teams) { if (ModelState.IsValid) { teams.coach = User.Identity.Name; db.Teams.Add(teams); db.SaveChanges(); return RedirectToAction("Index"); } return View(teams); } // // GET: /Teams/Edit/5 public ActionResult Edit(int id = 0) { Teams teams = db.Teams.Find(id); if (teams == null) { return HttpNotFound(); } return View(teams); } // // POST: /Teams/Edit/5 [HttpPost] public ActionResult Edit(Teams teams) { if (ModelState.IsValid) { db.Entry(teams).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(teams); } // // GET: /Teams/Delete/5 public ActionResult Delete(int id = 0) { Teams teams = db.Teams.Find(id); if (teams == null) { return HttpNotFound(); } return View(teams); } // // POST: /Teams/Delete/5 [HttpPost,ActionName("Delete")] public ActionResult DeleteConfirmed(int id) { Teams teams = db.Teams.Find(id); db.Teams.Remove(teams); db.SaveChanges(); return RedirectToAction("Index"); } protected override void dispose(bool disposing) { db.dispose(); base.dispose(disposing); } } }
我绝对怎么做到这一点,我已经尝试了一个viewmodel类,但我不知道如何获得someones教练名称的这些信息.
我期待着您的回复.
解决方法
有很多方法可以让这只猫受到伤害,但你要首先看到的一件事就是你不会发回两个模型的一个实例.如果检查“详细信息”操作的代码:
public ActionResult Details(int id = 0) { Teams teams = db.Teams.Find(id); if (teams == null) { return HttpNotFound(); } return View(teams); }
显然,我们发回的所有内容都是团队模型的一个实例.那么,让我们检查一下我们的选项.请考虑以下代码:
public ActionResult Details(int id = 0) { Teams teams = db.Teams.Find(id); if (teams == null) { return HttpNotFound(); } // get the list of players into a List<Players> var players ... var model = new Tuple<Teams,List<Players>>(teams,players); return View(model); }
现在在视图中我们可以将我们的模型设置为此(请注意,您需要在@model声明中完全限定团队和玩家):
@model Tuple<Teams,List<Players>>
从那里我们可以做以下事情:
Model.Item1.Name
要么:
Model.Item2[0].Name;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。