2017-01-18 13 views
0

私はasp.netコア・レザー・エンジン・エンティティ・フレームワークを使用しています。私はパラメータを持っている別のメソッドにリダイレクトしようとしていますが、ローカルホストのページにはメッセージが見つかりません。私が間違っていることを確認していない。 UpdateメソッドからLookUpItemメソッドにリダイレクトしようとしています。パラメータを使用しているときにRedirectToActionが機能しない

は、ここであなたが[HttpPost]アクションにリダイレクトしようとしている私のコード

[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

あなたは 'HttpPost'アクションにリダイレクトしようとしています。 'HttpGet LookUpItem'を意味しますか? 'HttpPost'アクションにリダイレクトすることはできません。また、 'RedirectToAction'メソッドの' routeValues'セクションに '@'シンボルを入れる必要はありません –

+0

こんにちは、上記の方法からhttppostを削除してもらえますか? – Matteo1010

答えて

0

です。 [HttpGet]アクションにリダイレクトする必要があります。

またRedirectToActionrouteValues部分で@シンボルの必要がない...また、これは私だけかもしれませんが、なぜあなたは代わりにショートカットにプロセスをしようとする前に、解析を行うことができず、すべてを1つの方法にまとめます。

[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(); 
} 

これはHTTPのPOSTを使用してページへのリダイレクトをサポートしていません

関連する問題