熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2013-11-13 11:09:16  來源: .NET編程 


  一些注意點

  官方的升級文檔上面有這麼一段話 

·         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()方法是可以再豐富一下查找其直接所屬的方法的名稱那這個功能就更加完美了

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15277.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.