如果多个页面看起来几乎相同,如何避免代码重复?

时间:2018-11-29 13:04:34

标签: c# asp.net-core .net-core razor-pages

例如,我有几页Product看起来几乎一样。我有Product/AddProduct/Modify/{id}页,其中一个是空白表单,用于添加新的Product,第二个已经填充了当前产品的数据,并且可以使用其他信息进行更新。由于Razor Pages将其分为AddModify PageModel,因此我对每个模型都有不同的cshtml视图。

我尝试使用ViewComponents来构建这些视图的可重用部分,但是只有当您要做的只是显示 display 数据时,它们才是好的。因为ViewComponents不支持Binding,所以我剩下的就是以某种方式发送ajax请求并追加数据以提交,这甚至听起来是错误的,并且可能不是正确的方法。

还有没有其他方法可以重复创建这些页面?

1 个答案:

答案 0 :(得分:2)

您可以通过发送产品模型的新对象(id属性中没有数据)和创建的对象(id属性中有数据)来创建用于创建和编辑的页面。并且在视图中,您可以基于发送的对象(无论它是新对象还是新对象)进行渲染。