-2

我创建了一个基于三个表组合的视图模型。

我单击编辑操作,它正确显示三个表中的数据。

但是当我点击保存按钮时,我无法从 FormCollection 或 Request["Id"] 获取数据

请建议它可能的方式。

公共类 ConferenceResourceEditModel {

    public ConferenceRoom ConferenceRoom { get; set; }

    public Resources Resources { get; set; }

    public ResourceAllocation ResourceAllocation { get; set; }

}

公共 ActionResult 编辑(int id)
{

//会议室会议室 = db.ConferenceRooms.Find(id);

        var query =

               from c in db.ConferenceRooms

               from r in db.Resourcess

               from ra in db.ResourceAllocation

               where c.ConferenceID == id


               where c.ConferenceID == ra.ConferenceID 

               where r.ResourceID ==ra.ResourceID 

               select new ConferenceResourceEditModel { ConferenceRoom = c, Resources = r,ResourceAllocation=ra };

        return View(query);       
    }

    //
    // POST: /ConferenceRoom/Edit/5

    [HttpPost]
    public ActionResult Edit(FormCollection form, int id, ConferenceResourceEditModel conferenceroom,ConferenceRoom crf)
    {

        if (ModelState.IsValid)
        {
            db.Entry(conferenceroom).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(conferenceroom);
    }
4

2 回答 2

0

使用一些 ORM(比如EntityFramework,我个人推荐DatabaseFirst方法)。使用类似的东西:

变种查询 =

           from c in db.ConferenceRooms

           from r in db.Resourcess

           from ra in db.ResourceAllocation

           where c.ConferenceID == id


           where c.ConferenceID == ra.ConferenceID 

           where r.ResourceID ==ra.ResourceID 

更复杂和困难。希望它会有所帮助。

于 2012-11-23T10:21:35.647 回答
0

在http://www.asp.net/mvc站点上查找模型绑定,那里有关于这类事情的精彩教程。

简而言之,您的控制器操作将采用 YOURVIEWMODEL 类型的参数并自动绑定到它

于 2012-11-23T09:56:02.750 回答