【问题标题】:What is Best Practice concerning Models and Views?关于模型和视图的最佳实践是什么?
【发布时间】:2011-12-15 19:32:20
【问题描述】:

我一直在开发一个应用程序,该应用程序使用基于单个 USP/dbml 的模型并使用 ViewBags 填充数据输入和编辑视图的查找列表。这一直没问题,直到我开始实现业务逻辑。 Dropdownlists 因为它们是用 ViewBag.llkup 完成的,所以在脚本函数中不可用,除非明确传递给函数。我可以创建一个包含多个 USP 的模型。我想知道关于这个问题的最佳实践是什么。 谢谢 布鲁斯 我在控制器中有以下代码:

    using (var dc = new usp_TM_Select_ShortNameDataContext())
    {
        String[] s = this.User.Identity.Name.Split('\\');
        string[] s2 = s[1].Split('.');
        string a = s2[0] + '.' + s2[1];
        ViewBag.Message = a.ToString();
        ViewBag.DetailsList = new SelectList((System.Collections.IEnumerable)dc.usp_TM_Select_ShortName().ToList(), "short_title", "short_title");
        var poc = new usp_ARD_Select_POCDataContext();
        return View(poc.usp_ARD_Select_POC().Single());
    }

两者都是强类型视图,但是如果它们在单个模型中,我如何将它们都返回到视图中,以便可以使用(访问)它们? 我有更复杂的示例,其中我返回了一条记录并进行了多次查找。我目前正在使用 ViewBag 执行此操作,并且想使用 ViewModels。 谢谢 布鲁斯

【问题讨论】:

  • 我在控制器中有以下内容:

标签: asp.net-mvc-3 asp.net-mvc-3-areas


【解决方案1】:

【讨论】:

    【解决方案2】:

    99% 的最佳实践是根据您的模型(或 ViewModel,如果适用)创建强类型视图。这样你就可以为特定领域的模型定制你的视图。

    【讨论】:

    • 虽然这两个答案都是正确的,但它们并没有完全回答我的问题。问题不在于是否使用强类型视图(我完全同意),而是如何将业务逻辑应用于用户在客户端做出的选择。我的妥协是模型状态可以在 httppost 的客户端状态中看到,所以我同时执行客户端业务逻辑和服务器端业务逻辑。
    猜你喜欢
    • 2013-10-04
    • 2021-11-14
    • 2019-08-11
    • 2011-09-16
    • 2013-06-16
    • 2011-04-08
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多