加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 2个模型选择字符串

发布时间:2020-12-15 21:45:12 所属栏目:百科 来源:网络整理
导读:我试图用visual studio 2010学习自己的C#MVC4. 我想要做的是在某人用户名上选择的1个视图上获得2个模型的完整输出. 所以如果我去/团队/细节/ 1 我将从模特队员和球队获得所有信息. 楷模: public class Players{ public int ID { get; set; } public string
我试图用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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读