1
    [HttpGet]
    public ActionResult Products(int catid)
    {
        ProductNumbersFiltering pnf = new ProductNumbersFiltering();
        var prodnumbers = pnf.getProductNumberFromID(catid);
        return View(prodnumbers);
    }

    [HttpPost]
    public ActionResult Products(int prodid)
    {
        return RedirectToAction("Details", prodid);
    }

したがって、GET メソッドはカタログ ID を受け取り、そのカタログに関連付けられているすべての製品を返します。POST メソッドは製品 ID を受け取り、それを詳細ページに渡します。どちらも同じメソッド シグネチャを持っているため、MVC は当然不満を言っていますが、それらを区別する良い方法は思いつきません。

他の誰かがこの「問題」に遭遇しましたか?どのようにアプローチ/修正しましたか?

4

1 に答える 1

4

post メソッドの名前を別の名前に変更し、次のActionName属性を使用します。

    [HttpPost]
    [ActionName("Products")]
    public ActionResult Products_Post(int prodid)
    {
        return RedirectToAction("Details", prodid);
    }
于 2012-07-13T20:21:43.237 に答える