1
public ActionResult Index()
{
    Queries q1 = new Queries();
    return View(q1);
}

public ActionResult Index(string id)
{
    Queries q1 = new Queries(id);
    return View(q1);
}

public ActionResult Select(string id)
{
    return RedirectToAction("Index",id);
}

なにが問題ですか...

コントローラータイプ「CompanyController」のアクション「Index」に対する現在のリクエストは、次のアクションメソッド間であいまいです。タイプLookUpForm.Controllers.CompanyController System.Web.Mvc.ActionResultIndexのSystem.Web.Mvc.ActionResultIndex() (System.String)タイプLookUpForm.Controllers.CompanyController

アクションインデックスの1つにはパラメータがなく、もう1つには文字列パラメータがあるので、有効である必要があると思います。

4

2 に答える 2

1

パラメーターが異なる場合でも、同じコントローラーに同じ名前の 2 つのアクションを設定することはできません。それらを明確にする唯一の方法は、別の HTTP 動詞を使用することです。

public ActionResult Index()
{
    Queries q1 = new Queries();
    return View(q1);
}

[HttpPost]
public ActionResult Index(string id)
{
    Queries q1 = new Queries(id);
    return View(q1);
}

または、両方のアクションに GET 動詞でアクセスできるようにする必要がある場合は、別の名前を見つけるか、カスタム アクション セレクターを記述する必要があります。

于 2012-07-05T05:40:10.740 に答える
0

httpmethods が異なる場合、つまり HttpGet または HttpPost の場合にのみ、アクションをオーバーロードできます。

于 2012-07-05T05:38:55.743 に答える