随笔- 40  文章- 0  评论- 42 
ASP.NET MVC Preview 2发布有很多天了。这段时间一直在研究并应用到实际的项目中。我对它的一句话感受是:的确很完美,的确很粗糙。完美的是产生的XHTML代码我可以完全使用XHTML1.1标准DTD了;粗糙的是还不够成熟,View里还有cs代码存在,控制页面的Title属性和服务器控件的数据绑定还得通过View的codebehind代码实现。
如果你还不是很了解它,请从Scottgu发表的 road map 里查看详细的介绍和教程。

这篇日志记几个要点,最近的记忆力越来越差了,真的老了?
1。IIS6下的Routing配置。
按照介绍,在IIS6里应该有如下语法{controller}.mvc/{action}/{id}的Route,需要把mvc扩展名映射到aspnet_isapi.dll来处理请求。但如果这样就得不到一个完美的URL。这不是我想要的啊!其实很简单,我可以把所有的请求都交给aspnet_isapi.dll来处理,虽然在性能上损耗一点点,但得到的成绩是不能估量的。方法就是把aspnet_isapi.dll添加到“通配符应用程序映射”里。即可达到完美URL的目标。
2。Best Practices about Form Design
这里的Form就是web里最基本的Form(不是传统ASP.NET里的Web Form)。上代码:
 1<fieldset>
 2    <legend>Fill the following fields:</legend>
 3    <form action="/Products/Save" method="post">
 4        <p><label for="pname">Name:</label><%= Html.TextBox("pname"%></p>
 5        <p><label for="pcat">Category:</label><%= Html.Select("pcat", ViewData.Categories)%></p>
 6        <p><label><%= Html.CheckBox("prec""Recommanded"false%></label></p>
 7        <p><%= Html.SubmitButton("psubmit""Submit"%></p>
 8    </form>
 9</fieldset>
这是在View里面的well formed XHTML代码(注意不是HTML)。一个好的建议是每一个input都有一个label围绕,这样的一个好处是点“Name"的时候,光标会自动定位到pname这个input文本框里,当然它的好处不仅仅是这一个。要完成这个过程还需要一个Action:
 1public void Save(string pname, int pcat, string prec){
 2  Product product = new Product();
 3  product.Name = pname;
 4  product.CategoryId = pcat;
 5  product.IsRecommanded = !(prec == null);
 6  
 7  dataContext.Products.InsertOnSubmit(product);
 8  dataContext.SubmitChanges();
 9
10  RenderView("SaveOK");
11}
可能你看到了一些非常奇怪的代码。但是目前我不能不这么做。
问题:Action的参数prec为什么不直接用bool类型?
答案:我们知道CheckBox有个checked属性,但在ASP.NET MVC里目前还不能获取到它,不能直接用bool类型的原因也是因为自动映射值是获取控件value属性的值而不是其他属性的值。
[OK,太晚了,未完成……]
 posted on 2008-04-15 04:32 Shiny Zhu 阅读(89) 评论(4)  编辑 收藏 所属分类: ASP.NET

#1楼     回复  引用  查看    
 黑暗 [未注册用户] | 2008-04-27 01:10
版主你好:
我也正用这个版本的开发一个项目。碰到了一些问题,能否帮忙解决。你在开发项目的过程中,是否也碰到这些问题。
比如:上传文件、controller命名规范。
一个页面,通常有很多的数据组合,那么model里类是不是很复杂?我的qq:759922422.
#2楼 [楼主]    回复  引用  查看    
 Shiny Zhu       | 2008-04-27 14:50
@黑暗
我也刚入门。
你可以给我发邮件,或直接在这里留言。:)谢谢。
#3楼     回复  引用  查看    
 stone4365 [未注册用户] | 2008-05-08 14:50
博主你好:

我现在也正在用VS2008做一个MVC的项目,但是我很头疼的一个问题就是在VS2008的虚拟服务器模式下可以正常运行,但是我从本地IIS就不能正常运行了,如:http://127.0.0.1/home/login 就会提示目录不存在的404错误。

我本机用的是IIS5.1 ,我把源程序放在win2003下的IIS6.0下仍然不行,我看了您关于“通配符应用程序映射”的文章,不过没有看明白,具体应该怎么设置,请指点迷津。

我的邮箱是:stone365#163.com
msn : stone4365@hotmail.com

另外一只也没找到你的联系方式.
#4楼     回复  引用  查看    
 苹果引擎       | 2008-06-26 22:55