2010-01-13 34 views

回答

0

1)是的。 2)他們會如何匹配?這兩個例子都是你的名字。

+0

我想他們可能匹配基礎上的位置,但顯然這不可能。我將不得不認爲這一個通過... – Ben 2010-01-13 14:50:57

0

不,當你創建自己的defaultmodelbinder和/或controlleractioninvoker

+0

不,它比這更復雜。您尚未考慮操作方法選擇器。回想一下,行爲可能超載;如果多個操作的參數不同,多個操作可以具有相同的名稱。 *能*綁定參數並不意味着你*應該* - 你可以有多個相同類型的參數。然後你必須問:詢問請求中的行爲是否有效時,應考慮請求中的哪些標記(QSP,表單密鑰,服務器變量等)。就像我說的那樣,那個名字就是你的全部名字。這是唯一在路線*和*中的行爲。 – 2010-01-13 15:24:46

+0

動作方法選擇器位於控制分段調用器中,可以更改爲不依賴於路徑值中的「動作」值。我實際上已經完成了這個複雜但有用的目的,它的工作原理。 – Paco 2010-01-13 16:28:15

+0

簡而言之:你可以用*重大努力將「匹配」重新定義爲除「等於」之外的其他含義,但*不要欺騙自己:*無論你如何做到這一點。 – 2010-01-13 16:28:19

0

是,bacause約定(在配置)。以這種方式開發應用程序更簡單快捷:這就是ASP.NET MVC的強大功能。

+0

缺點是你必須對每個應用程序使用相同的約定。這些約定基於mvc框架創建者的意見,而不是基於您的或我的意見。只要約定是可配置的並且沒有太多的意思,配置上的約定是理想的。在某些應用程序中,重寫約定可能非常有用,這不容易,但可以完成。 – Paco 2010-01-13 16:30:50

+1

我認爲在許多應用程序中進行轉換是一種快速生成軟件並且牢記架構的方法。你不用擔心配置:Converntions給你一個優點:你需要考慮什麼,而不是如何(做出同樣的,可重複的事情)。 – Dariusz 2010-01-13 19:34:37

1

確實。將會掃描RouteData集合的「值」字典中的名稱與參數名稱相匹配的鍵/值對。

在下面的操作方法「月」參數會根據輸入的URL路徑的{月}部分自動填充:

public ActionResult Index(string month) { 
    if(month == "1") 
     //Happy New Year! 
} 
相關問題