2009-10-23 92 views
0

我使用領域無處不在,我想類似如下:領域和途徑

http://localhost/MyArea/MySection/MySubSection/Delete/20 

我一般做以下的事情訪問:

http://localhost/MyArea/MySection/MySubSection/20 

但是,如果我想刪除然後我不得不說

http://localhost/MyArea/MySection/DeleteEntryFromMySubSection/20 

隨着路線,你如何做到這一點? (路線不太現實,在我的系統中它們比這更簡潔)

編輯:這與使用Areas,ASP.NET MVC 2 Preview 2功能特別相關。

回答

0

這將取決於您的路線&目前的結構。

下面是您可能想要使用的示例路線。

如果你希望能夠調用下面的路線刪除:

http://localhost/MyArea/MySection/MySubSection/Delete/20 

而且讓我們假設你有一個名爲「MyAreaController」控制器,以「刪除」的行動,併爲求簡單假設節和第僅僅是字符串如:

public class MyAreaController : Controller 
{ 
    public ActionResult Delete(string section, string subsection, long id) 
    { 

然後,你可以創建以下列方式的路徑(在你的Global.asax.cs,或任何你定義你的路由):

var defaultParameters = new {controller = "Home", action = "Index", id = ""};    

routes.MapRoute("DeleteEntryFromMySubSection", // Route name - but you may want to change this if it's used for edit etc. 
      "{controller}/{section}/{subsection}/{action}/{id}", // URL with parameters 
      defaultParameters // Parameter defaults 
      ); 

注意:我通常會爲所有可能的參數值定義枚舉。然後,參數可以是適當的枚舉類型,並且您仍然可以在路徑中使用字符串。例如。你可以有一個具有「MySection」值的「Section」枚舉。

+0

我正在使用區域,ASP.NET MVC 2功能。所以我的路線就像'http:// localhost/Area/Controller/Action/Parameter'。有關更多詳細信息,請參閱http://haacked.com/archive/2009/10/01/asp.net-mvc-preview-2-released.aspx。 – Kezzer 2009-10-23 10:57:23

+0

噢好吧,謝謝你......「老師」成爲「學生」!乾杯:-) – 2009-10-23 11:28:50