Something about ASP.NET MVC Preview 2(1)

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 @ 2008-04-15 04:32  亮小猪  阅读(547)  评论(4编辑  收藏  举报