如果这是一个基于意见的问题,我会提前道歉,但如果有的话,我想知道以下情况的标准/惯例。
我有一个CustomerController,它具有基本的MVC脚手架crud视图。路由格式是典型的:Customers / Edit / 1
让我们说在客户编辑视图中我还希望在该网格上列出客户与crud的联系人。
所以我的CustomerViewModel包含所有典型的Customer属性和导航属性:IEnumerable contacts。这样可以在路线上列出联系人:Customers / Edit / 1 easy。
我的主要问题是如何通过Customer实体为联系人进行CRUD。
我的所有CustomerContact操作方法都应该在CustomersController内部或单独的ContactsController中完成吗?由于一切都通过Customers实体,这使我相信CustomersController将是常见的选择。
我在客户编辑页面的联系人列表中编辑和删除链接的路由应该是Customers / 1 / Contacts / Edit / 1,Customers / 1 / Delete / 1等等。或者是否有更好的模式可供遵循。
答案 0 :(得分:2)
For the First question :::::::::
ASP.NET
MVC
根据传入的URL调用不同的控制器类(以及其中的不同操作方法)。 ASP.NET
MVC
使用的默认URL路由逻辑使用这样的格式来确定要调用的代码:
/[Controller]/[ActionName]/[Parameters]
在App_Start / RouteConfig.cs文件中设置路由格式。 App_Start / RouteConfig.cs
因此,您可以根据需要制作多个控制器
但是你应该知道你应该知道如何在appstat
文件中链接它们
包含路线
并将其与相应的观点联系起来。
For the Second Question :::::::::
有很多方法可以将参数从URL传递到控制器:::
我将举例说明每一种方法wellcome example
在任何预定义控制器内
1 - 你可以像我上面所说的默认方式传递它,
此方法称为path param
2-你可以像这样传递它们:::
我建议你从这里开始学习::: http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started 即使mvc版本与你的版本不同