2011-12-15 62 views
2

我一直在开发一个应用程序,它使用基于单个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。 谢谢 布鲁斯

+0

我有一个控制器的以下: – user1011441 2011-12-15 21:25:07

回答

0

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

+0

虽然这两个答案都是正确的,他们并没有完全回答我的问题。问题不在于是否使用强类型视图(我完全同意),而是如何将业务逻辑应用于用户使客户端做出的选择。我的comprimise是模型状态可以在它的客户端状态在httppost中看到,所以我同时执行客户端业务逻辑和服务器端业务逻辑。 – user1011441 2011-12-16 22:12:35

相关问题