有条件的表格行动?

时间:2015-04-23 17:02:12

标签: asp.net-mvc umbraco

我不确定我是否只有解决方案设计问题,但我在Umbraco项目中有一个MVC表单。 Umbraco为名为BeginUmbracoForm的表单提供了自己的帮助扩展。表单提交保存到Umbraco之外的常规SQL数据库中,因此我有一个正常的MVC项目来管理表单提交(管理员可以批准,拒绝和编辑提交)。

我遇到的问题是我在管理部分重用了Umbraco表单。创建一个具有完全相同字段的复制表单没有任何意义,只是为了编辑。

但是,我不能在管理项目中使用BeginUmbracoForm,因为它是一个普通的MVC项目。此外,由于Umbraco控制器需要继承Controller,我无法发布到同一SurfaceController

所以基本上,我需要这样的东西:

if (@Model.IsAdmin)
{
    @using ( Html.BeginForm<AdminController>("EditForm") )
}
else
{
    @using ( Html.BeginUmbracoForm<UmbracoController>("SubmitForm") )
}

我不确定这是否可行,我想我可能需要在Umbraco中创建管理部分。

1 个答案:

答案 0 :(得分:0)

在Umbraco应用程序中创建管理部分是您的域管理员应该做出的安全决策。将代码库分成单独的Web项目而不是共享单个代码库是一个很好的案例。

理想情况下,您可以将业务逻辑封装到它们所服务的域中,而不是在它们之间引入严格的耦合。这样你的网站可以孤立存在。部署到不同的端点。使用不同的技术和安全主体来为其业务功能服务。

Wikipedia: Domain-driven design (Bounded context)

对于一个简单的问题看起来似乎是一个过度设计的解决方案,但我确信每个开发人员都可以重新计算一个项目,该项目最初是通过一些很快升级为 big-ball-of-mud < / em>申请。