asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET MVC Preview3 bug 及期望 [集][2]


发布日期:2022年02月06日
 
ASP.NET MVC Preview3 bug 及期望 [集][2]

一些注意点

官方的升级文档上面有这么一段话

· dit the Defaultaspx file and add the following line:

<% ResponseRedirect(~/Home) %>

This redirect is not necessary for IIS This is a workaround for an issue with how the Web server that is built into Visual Studio (the ASPNET Development Server) works with routing

大概意思是说找到Defaultaspx 并且加入这段代码<% ResponseRedirect(~/Home) %> 在IIS中是不需要这么做的为的是当你用VS测试或者IIS以下的IIS时候需要用这个来做一个根目录的跳板十分感谢Leven朋友的提醒使用Preview/模板的话那里的defaultaspx没有设定Language=C# 默认是VBNETResponseRedirect(~/Home)的语法没有错误用了C#的话后面需要加一个;这里要补充一点文档上没有说清楚的只是(~/Home) 的话对于IIS以下的环境是无效的(当然在Preview的模板中在defaultaspxcs的Page_Load里已经加入了这个跳转需要到defaultaspxcs中查看或修改根据Page_Load和aspx页面的执行顺序直接在aspx页面设定将是无效的)从Preview/上面升级过来的时候还要注意这里的~/Home需要和前面的版本修改globalasaxcs一样如果不是使用IIS则需要在后面加一个自定义的扩展名比如mvc——~/Homemvc

还有一点点期望

HtmlDropDownList(原HtmlSelect)在数据源的类型上可以更丰富一些特别是直接接受IDictionary<stringobject>类型的数据源(目前由于IDictionary<stringobject> htmlAttributes的重写方法这个类型会被认为是一个属性的集合)当然这在new SelectList()里面还是可以做到的只是这种valuetext形式的Html输入框能直接绑定keyvalue就更好了目前还要自己扩展一些方法才能做到

Preview里面一改以往必须在RenderView中输入aspx/ascx文件名的要求可以根据Action名称直接View();并且每个Action都要返回一个ResultAction类型这时候我们可以通过return RedirectToAction(actionName)来执行另外一个Action(RedirectToAction 返回的也是ResultAction类型)但是我又想到一个更加方便的方法(不知官方这么用了没有)——直接return actionName()——这个方法除了输入方便还助于在编译时检测actionName的正确性以及传参的正确性及便捷性因为返回类型都是ResultAction我尝试了之后发现是可行的但是有一个跟View()方法有关的问题出现了比如我在Actionreturn Action();而在Action我只是View()没有View(Action)这时候由于方法名称还是Action所以在运行到Action的View()的时候会自动查找Actionaspx/ascx而非Action这里有点遗憾如果View()方法是可以再丰富一下查找其直接所属的方法的名称那这个功能就更加完美了

[] []

               

上一篇:ASP.NET入门教程 14.1.1 对象处理[1]

下一篇:ASP.NET MVC Preview3 bug 及期望 [集][1]