【问题标题】:Where to put ParseUrl() or similar function that works against a datastore, in ASP.NET MVC?在 ASP.NET MVC 中将 ParseUrl() 或适用于数据存储的类似函数放在哪里?
【发布时间】:2010-07-08 18:22:24
【问题描述】:

如果您要编写一个函数/方法,该函数/方法将针对输入的字符串或 slug(例如在创建或编辑视图中)进入数据存储并检查该字符串或 slug 是否存在,在这种情况下创建指向它的链接,你会把它放在哪里?

例如,我们在创建或编辑表单上有一个“链接”文本框。我有一个连接到它的 jQuery 自动完成功能,它可以检索现有的 Page slug。如果用户决定选择其中一个,我们将根据页面控制器创建一个指向我们网站内容的链接,如下所示:

~/Page/Display/some-slug

或者只是

~/Page/some-slug

但是,如果用户决定不选择任何内容并输入例如 www.google.com,我们会在 ParseUrl() 中捕获它,并使用 http://... 等对其进行格式化并像这样存储它。

该函数的代码没有问题,我目前在模型绑定器中工作。但是,由于在 Model Binders 中使用 DI 的奇怪、令人困惑和相反的做法,我想将它移到其他地方。另一个原因是从模型绑定器中删除数据访问代码。

问题是 - 将这种功能转移到哪里?如果可能的话,我想避免在各种控制器操作中重复 ParseUrl() 调用。

【问题讨论】:

    标签: asp.net-mvc modelbinders


    【解决方案1】:

    1) 实施它,使其对您和您的团队有意义

    -或-

    2) 将其留在原处,因为它已经在工作了。 移动它是否会使您的应用程序变得更好,您的客户会更快乐,截止日期更快吗?

    如果你敢使用错误的扩展点,没有神奇的 Asp.net MVC 雷神从天而降。没有人会称你为白痴。人们可能不同意,但这确实发生了。 “去做”并在架构纯粹之前完成工作是可以的。

    但是,由于模型绑定器中使用 DI 的奇怪、令人困惑和相反的做法

    这是什么意思?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2015-11-17
    相关资源
    最近更新 更多