您在启动asp.net mvc时学到的最重要的经验教训是什么?您可以向开始使用的人突出显示,以便他们可以避免这些错误?
答案 0 :(得分:8)
答案 1 :(得分:4)
不要忘记模式的“单元测试”部分。
答案 2 :(得分:3)
尝试始终使用ViewModel在Controller和View之间传递数据。 你可能认为你不需要一个,你只需要传递你的模型,但突然你需要一个列表框,其中包含几个用于编辑模型或显示消息(不是验证消息)的选项,并且你开始向ViewData添加项目,用魔术字符串作为键,使应用程序更难维护。 您还可以使用ViewModel解决一些安全问题。 例如:
class user:
int id
string name
string email
string username
string password
您的观点允许用户更改其姓名和电子邮件并发布到操作
public ActionResult Edit(User user)
{
--persist data
}
有人可能会篡改您的表单并发布新密码和用户名,您需要非常小心DefaultBinder行为。 现在,如果您使用ViewModel,如:
class userEditViewModel:
int id
string name
string email
问题已经消失。
答案 3 :(得分:1)
只要有可能输入您的视图
在视图中避免使用逻辑
远离HttpContext
答案 4 :(得分:1)
获取Steve Sandersons Pro ASP.NET MVC框架
答案 5 :(得分:1)
确保使用RedirectToAction
命名参数:
return RedirectToAction("DonateToCharity", new { id = 1000 });
答案 6 :(得分:1)
将javascript放在单独的文件中,而不是放入视图页面
答案 7 :(得分:0)
控制器的名称:)
单元测试模式
答案 8 :(得分:0)
不要使用Forms集合,请使用模型绑定。
尽量不要使用ViewData,创建一个ViewModel。
如果在View中有循环或if,请编写HTML帮助程序。
善,
丹
答案 9 :(得分:0)
不要让你的控制器变胖,做太多工作。我过去看过1000多台线路控制器,它只是一个绝对的噩梦,可以理解发生了什么。
利用控制器的单元测试来确保依赖性得到控制,并且您的代码是可测试的。
不要让jQuery和花哨的客户脚本定义应用程序的行为,尽可能少地使用它,让它改进你的应用程序。
尽可能使用部分视图和HTML帮助程序,以确保您的视图不会变得笨拙和维护噩梦。
尽可能使用ViewModel。
使用依赖注入框架来处理你的依赖关系(MvcContrib有几个控制器工厂,虽然它很简单,可以自己滚动)。
答案 10 :(得分:0)
为网站的每个部分使用不同的控制器(例如,主页,帐户)
了解如何使用ViewData和TempData
了解RenderPartial的用途