0

我只是在学习 MVC,并且有一个问题我敢肯定除了我之外的每个人都很明显;-)。我将 MVC3 与 EF4 和 DbContext 一起使用,并且在理解大多数基本功能方面取得了成功。这是我的问题:

假设我有 2 个表(公司和用户)以及它们之间的一对多关系(外键公司 ID)。

我的问题是:在 MVC 中执行一对多关系的最佳方式是什么?我不希望任何公司中的任何人编辑任何用户。我只希望 X 公司的人修改他们自己的用户。

我正在尝试在特定公司中创建新用户。我不想在用户视图中使用标准 EF 模板(它为您提供公司下拉列表,因为它是外键)。我想确保我在 /Company/123456 中,然后才能从该公司内创建用户。

我查看了 ASP.NET 路由,看看是否有可能:/Company/123456/User/Create/ - 它看起来不像。(看起来我只能有一个 Controller/Action/Id)。我只是不确定在创建新对象时我是如何“记住”我们目前在公司 123456 中的。

查询字符串?(/用户/创建/?公司=123456)。我应该创建另一个类(CompanyUser)吗?如果是这样,我不确定路由的外观(CompanyUser/Create/123456)?

提前感谢您的建议。

麦克风

4

1 回答 1

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){
       ...
   }
}
于 2012-05-17T14:36:21.073 回答