2017-01-18 3 views
0

Ich benutze asp.net Core-Rasiermesser-Engine-Entity-Framework. Ich versuche, zu einer anderen Methode umzuleiten, die einen Parameter hat, aber ich bekomme immer eine localhost Seite kann Nachricht nicht gefunden werden. Nicht sicher, was ich falsch mache. Ich versuche, von meiner Update-Methode in meine LookUpItem-Methode umzuleiten.RedirectToAction funktioniert nicht bei der Verwendung von Parametern

Hier ist mein Code

[HttpPost] 
    [Route("LookUpItem/{id}")] 
    public IActionResult LookUpItem(int id) 
    { 
     var user = _context.Auction.FirstOrDefault(x => x.Id == id); 
     ViewData["Product"] = user.Product; 
     ViewData["user"] = user.First_Name_Of_Seller; 
     var timeLeft = user.End_Date.Subtract(DateTime.Now); 
     ViewData["Description"] = user.Description; 
     ViewData["HighestBid"] = user.Bid; 
     ViewData["NameOfBidder"] = user.First_Name_Highest_Bid + " " + user.Last_Name_Highest_Bid; 

     HttpContext.Session.SetString("item_id", id.ToString()); 
     if (timeLeft.Days > 0) 
     { 
      ViewData["EndDate"] = (@timeLeft.Days + " Days"); 
     } 
     else if (timeLeft.Hours > 0) 
     { 
      ViewData["EndDate"] = (@timeLeft.Hours + " Hours"); 
     } 
     else 
     { 
      ViewData["EndDate"] = (@timeLeft.Minutes + " Minutes"); 
     } 
     return View(); 
    } 

    [HttpPost] 
    [Route("update")] 
    public IActionResult Update(Auction item) 
    { 
     string LocalVariable = HttpContext.Session.GetString("item_id"); 
     System.Console.WriteLine("?????????????"); 
     System.Console.WriteLine(LocalVariable); 
     System.Console.WriteLine("?????????????"); 
     return RedirectToAction("LookUpItem",new {@id = Int32.Parse(LocalVariable)});//Trying to call the above method 
    } 
+0

Sie versuchen, zu einer 'HttpPost' Aktion umzuleiten. Meinst du ein 'HttpGet LookUpItem'? Sie können nicht auf eine 'HttpPost'-Aktion umleiten. Es gibt auch keine Notwendigkeit für das Symbol "@" im Abschnitt "routeValues" der "RedirectToAction" -Methode. –

+0

Hallo, müssen Sie httppost von der obigen Methode entfernen? – Matteo1010

Antwort

0

Sie versuchen, auf eine [HttpPost] Aktion zu umleiten. Sie müssen zu einer [HttpGet] Aktion umleiten.

gibt auch keine Notwendigkeit für das @ Symbol im routeValues Teil der RedirectToAction .. Auch dies könnte mir einfach sein, aber warum können Sie die Parse nicht tun, bevor statt der Prozess zu Verknüpfung versuchen, und alles zu einer Methode kombinieren.

[HttpPost] 
[Route("update")] 
public IActionResult Update(Auction item) 
{ 
    string LocalVariable = HttpContext.Session.GetString("item_id"); 
    System.Console.WriteLine("?????????????"); 
    System.Console.WriteLine(LocalVariable); 
    System.Console.WriteLine("?????????????"); 
    var intParse = Int32.Parse(LocalVariable); 
    return RedirectToAction("LookUpItem",new {id = intParse}); 
} 

[HttpGet] //change to HttpGet 
[Route("LookUpItem/{id}")] 
public IActionResult LookUpItem(int id) 
{ 
    // logic here 
    return View(); 
} 

Lassen Sie mich wissen, ob dies

Verwandte Themen