【问题标题】:Conditional form actions?条件表单动作?
【发布时间】:2015-04-24 01:22:18
【问题描述】:

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

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

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

所以基本上,我需要类似的东西:

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

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

【问题讨论】:

    标签: asp.net-mvc umbraco


    【解决方案1】:

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

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

    Wikipedia: Domain-driven design (Bounded context)

    对于一个简单的问题,这似乎是一个过度设计的解决方案,但我相信每个开发人员都可以讲述一个项目,该项目始于一些黑客攻击,然后迅速升级为 大泥球 应用程序。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      相关资源
      最近更新 更多