Asp.net mvc Asp.NETMVC视图:创建和关联表

Asp.net mvc Asp.NETMVC视图:创建和关联表,asp.net-mvc,Asp.net Mvc,我在ASP.NETMVC中有一个留言板,当用户创建一篇新文章时,他们必须选择一个类别,当我创建一个视图(创建)时,字段(类别)不会出现 数据库有一个中间表MessageToCatRel,其中包含一个messageID和一个CatId。我认为这就是让MVC困惑的地方。目前我正在做以下工作,但不喜欢使用Request.Form。如何让它像其他字段一样发回对象 public ActionResult Create(Message messageToCreate) //Post back from

我在ASP.NETMVC中有一个留言板,当用户创建一篇新文章时,他们必须选择一个类别,当我创建一个视图(创建)时,字段(类别)不会出现

数据库有一个中间表MessageToCatRel,其中包含一个messageID和一个CatId。我认为这就是让MVC困惑的地方。目前我正在做以下工作,但不喜欢使用Request.Form。如何让它像其他字段一样发回对象

  public ActionResult Create(Message messageToCreate) //Post back from Message Post
            {
                if (!ModelState.IsValid)
                {
                    this.LoadCategoryViewData();
                    return View();
                }

                //Now try and save this in the Database     /

/And Save
                IMessageRepository repo = new MessageRepository();
                MessageCategory curCatRel = new MessageCategory();
                curCatRel.CategoryID = Convert.ToInt32(Request.Form["Categories"]);

                messageToCreate.MessageCategories.Add(curCatRel);
                messageToCreate.CreatedBy = 1; //Temp messure
                messageToCreate.PublishDateTime = DateTime.Now;

                repo.AddMessage(messageToCreate);
                repo.Save();
改变

这就是你要找的吗

也许是这个

public ActionResult Create(Message messageToCreate, MessageCategory category)
在标记中:

<form ..> <input type='hidden' name='MessageCtaegory.CategoryID'>1</input></form>
1

谢谢你的回复,我没有真正做到我想要的。我坚持使用ViewData一段时间


谢谢

行动的签名是什么?
public ActionResult Create(Message messageToCreate, MessageCategory category)
<form ..> <input type='hidden' name='MessageCtaegory.CategoryID'>1</input></form>