2010-05-21 45 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 ...; } 
相关问题