我會嘗試儘可能最好地說出這一點。 讓我們假設我有控制器X的一個方法:MVC ActionResult方法,參數如何匹配?
Index(string someString)
這是有效的? :X /索引
或者我需要:X /索引/ someString
(所有這一切都使用默認路由配置)。
現在,是有可能有第二個方法,使:
Index(stringSomestring)
{
..
}
Index()
{
}
如果是這樣,如何MVC路線選擇正確的方法是什麼?
最後...
之間有什麼區別:聲明參數默認值在routeConfiguration,或方法的參數本身 ?
例如:
rotes.Add("", "etcetc", new {someString = string.Empty);
VS
Index(string someString = string.Empty)
感謝和抱歉,如果它太傻了或冗長。
----編輯----- 感謝您的反應anaximander,你幫我清除了一些頭(雖然還在掙扎)。 考慮一下:
routes.MapRoute("",
"Student/Sort-By{sortType}",
new { controller="Student", action="Index", sortType= ""}
);
我有一個方法:
Index(string sortType)
{
...
}
如果我提供了一個網址:學生/排序,ByDate 它工作正常。 如果我提供了一個網址:學生/排序,通過 發現什麼都沒有,但我的方法對空排序選項...
我覺得我過於複雜/做一些愚蠢的,但不能查明是什麼:(
這樣一個很好的解釋,但我仍然困惑......這不是你的錯,我只是很難找到我的頭。檢查那裏的編輯,看看我有什麼麻煩:) –
編輯 - 奇數。我發現,如果我把一個隨機值,除了空的任何東西,路線被使用。如果我使用string.Empty或「」它不。我認爲它根本不接受那個空話。多麼奇怪...... –
啊......我沒有看到你的第二個評論,直到我更新了我的答案之後,你所說的話似乎支持我的假設。 – anaximander