2010-05-21 92 views
0

上的不同方法我有一個控制器的方法的控制器的方法:調用同一控制器

public ActionResult Details(int id) 
    { 
     Order order = OrderFacade.Instance.Load(id); 
     return View(order); 
    } 

,其用於可能調用的95%。對於另外5%,我需要在傳遞給門面之前操作id的值。我想在同一個控制器中創建一個單獨的方法來執行該操作,然後調用這個(Details)方法。

該方法的簽名是什麼樣的?調用主要Details方法的語法是什麼?

public ??? ManipulatorMethod(int id) 
{ 
    [stuff that manipulates id] 

    [syntax to call Details(manipulatedID)] 
} 

MNY THX

+0

因此ManipulatorMethod總是被調用,那麼5%的時間在重定向之前做些什麼? – CRice 2010-05-21 00:50:14

回答

1
public ActionResult ManipulatorMethod(int id) 
{ 
    //[stuff that manipulates id] 
    int _id = id++; 

    //[syntax to call Details(manipulatedID)] 
    return RedirectToAction("Details", new { id = _id }); 
} 

//假設途徑(通常在默認路由)

0

上(編號)存在,如果你將直接調用操縱方法作爲一個動作你可以這樣做的控制器:

public ActionResult ManipulatorMethod(int id) 
{ 
    // Do something to id 
    return Details(id); 
} 

如果所有訪問將通過詳細信息操作,那麼你可以這樣做:

public ActionResult Details(int id) 
{ 
    if(IdNeedsManipulation(id)) 
     id = ManipulateId(id); 

    return View(id); 
} 

private int ManipulateId(int id) 
{ 
    // Do something to id 
    return id; 
} 

private bool IdNeedsManipulation(int id) { return ...; } 
相關問題