我只是在学习MVC并且有一个问题,我确信除了我之外每个人都很明显;-)。我正在使用MVC3与EF4和DbContext,并在理解大多数基本功能方面取得了很大成功。这是我的问题:
假设我有2个表(公司和用户)以及它们之间的1对多关系(外国公司ID)。
我的问题是:在MVC中实施1对多关系的最佳方法是什么?我不希望任何公司的任何人编辑任何用户。我只希望X公司的人员修改他们自己的用户。
我正在尝试在特定公司中创建新用户。我不想在用户视图中使用标准EF模板(因为它是外键而为您提供公司下拉列表)。在我可以从该公司内部创建用户之前,我想确保我在/ Company / 123456中。
我查看了ASP.NET路由,看看这样的事情是否可行: / Company / 123456 / User / Create / - 它看起来不像。 (看起来我只能有一个Controller / Action / Id)。在创建新对象时,我只是不确定我是否“记得”我们目前在公司123456中。
查询字符串? (/用户/创建/?公司= 123456)。我应该创建另一个类(CompanyUser)吗?如果是这样,我不确定路由的外观(CompanyUser / Create / 123456)?
提前感谢您的建议。
麦克
答案 0 :(得分:3)
对于/ Company / 123456 / User / Create /它应配置为:
routes.MapRoute(
"CreateCompanyUsers",
"/Company/{companyId}/User/Create",
new { controller = "User", action = "Create" }
);
在这种情况下,/ Company / 123456 / User / Create /将转到类似
的操作public class UserController : Controller {
...
public ActionResult Create(int companyId){
...
}
}