一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11


一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11
 
本文根据《Professional ASP.NET MVC 1.0》中微软牛人Scott Guthrie 提供免费下载的第一章,一步一步演示如何通过ASP.NET MVC 1.0 正式版创建NerdDinner 范例程序。对了解如何使用最新的ASP.NET MVC 1.0框架创建Web Application 非常有帮助。本文由http://forum.entlib.com 开源论坛小组提供。关于本文的一些资源,请参考文章最后的链接。
 
前面系列文章:
 
本文继续学习之旅,一步一步通过ASP.NET MVC 1.0 实现NerdDinner 范例程序。
 
命名规范和\Views目录结构
默认情况下,ASP.NET MVC应用程序使用约定的目录命名和结构,来解析视图模板。开发人员在Controller控制器中引用视图时,不必指定完整的路径。ASP.NET MVC 将自动寻找应用程序中\Views\[ControllerName]\目录,并找到相应的视图模板文件。
例如,我们创建的DinnersController类 – 直接引用3个视图模板:Index / Details / NotFound。ASP.NET MVC 默认到应用程序的\Views\Dinners 目录下寻找这些文件。
 

 
从上图中,可以看到3个Controller控制器类(DinnersController、HomeController和AccountController),其中后面2个控制器是在创建项目时默认添加的,另外在\Views目录中有3个子目录,分别对应Controller类。
Home和Accounts控制器引用的视图会自动到相应的\Views\Home和\Views\Account 目录中寻找。\Views\Shared 子目录则用来存放共享的视图模板,可供多个控制器使用。ASP.NET MVC在解析一个视图模板时,首先检查\Views\[Controller] 特定目录,如果找不到,则继续到\Views\Shared 子目录中寻找。
 
关于对每一个视图模板的命名,建议的方法是视图模板保持和action方法相同的名称。例如,Index action方法使用Index视图来呈现视图结果,Details action方法使用Details 视图来呈现结果。这样,有助于很快知道哪一个视图模板和哪一个action方法关联。
 
当视图模板和控制器调用的action 方法有相同的名称时,开发人员可以不必显式指定视图模板的名称。我们仅仅需要传递模型对象给View() 辅助方法(不需要制定视图名称),ASP.NET MVC 将自动推断出我们使用的视图 \Views\[controllerName]\[ActionName],并展示结果。
这样,我们可以稍微简洁一些代码,避免在代码中重复view的名称。
 

 
上面的代码是实现Dinner列表和显示详细信息的全部代码。
 
http://forum.EntLib.com 开源小组注:前面1-11篇介绍了如何创建控制器、Model和视图,实现了Dinner列表和详细信息的展示。下一步,我们将进一步扩展DinnersController类,实现创建、编辑和删除的功能。
 
今天就到这里了,明天继续翻译ASP.NET MVC eBook – 开发NerdDinner 范例程序向导。欢迎访问http://blog.EntLib.com 博客平台获取更多的MVC学习资料。
 
相关资源下载链接:
1. ASP.NET MVC 1.0 正式版发布了!!!
 
2. 免费ASP.NET MVC eBook 向导-电子书下载

 

发表 @ 2009年4月1日 20:07

打 印

评论

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by silenus-G at 2009/4/24 16:30
Gravatar
声援一下

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by gameover at 2009/5/5 15:31
Gravatar
不好意思
又来打扰了

我怎么在Edit不了啊

点击率save 就说出错

行 31: }
行 32: public void Save() {
行 33: db.SubmitChanges();
行 34: }
行 35: }

..为什么会这样呢..
用上面的两个更新都是一样的错误.

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by entlibforum at 2009/5/5 17:33
Gravatar
gameover, 具体错误信息是什么?

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by gameover at 2009/5/6 9:47
Gravatar
在浏览器中出的错

编译没得错误

在浏览器中改变值得时候说上面的错误

在我加了后面的限制条件后说

电话号码和国家那行不对

但是我写的是符合条件的

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by entlibforum at 2009/5/6 11:11
Gravatar
gameover, 估计是你的写得电话号码不符合代码中设定的正则表达式。

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by gameover at 2009/5/6 18:14
Gravatar
不是啊。

。。我不加限制条件也不行的啊

有空我给你看看

# re: 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 11

Left by entlibforum at 2009/5/6 21:16
Gravatar
正则表达式的定义是在:
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 6
blog.entlib.com/.../...c-1.0nerddinner-part-6.aspx

你可以仔细看看。在我们提供下载的范例程序中,另外添加了China的电话号码正则表达式的定义:
forum.entlib.com/Default.aspx?g=posts&t=496

您的评论:



 (不显示)


 
 
 
Please add 4 and 5 and type the answer here:
    
 

评论预览窗口:

 
«三月»
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910