我有两种方法(操作)具有不同的选项格式,但是当我运行它时,我告诉它们是不明确的。方法如下所示。
public ActionResult SelectInstitutionToEdit(){...}
public ActionResult SelectInstitutionToEdit(string message){...}
答案 0 :(得分:1)
是。您不能拥有多个具有相同名称的操作方法(&相同的http动词)。
如果您希望两者都能用于Http GET请求,您可以保留第二个请求,并检查message
参数的值,并根据该值返回相关响应。
public ActionResult SelectInstitutionToEdit(string message)
{
if(String.IsNullOrEmpty(message))
{
// to do :Return something
}
// to do :Return something
}
这适用于yourSite/yourController/SelectInstitutionToEdit
和yourSite/yourController/SelectInstitutionToEdit?message=hello
答案 1 :(得分:1)
考虑更改签名:
public ActionResult SelectInstitutionToEdit(){...}
public ActionResult SelectInstitutionToEditWithString(string message){...}
答案 2 :(得分:1)
虽然由于方法重载,编译器将运行此代码而没有任何错误,但MVC框架不允许它。但您可以使用ActionName
属性:
public ActionResult SelectInstitutionToEdit(){...}
[ActionName("SelectInstitutionToEditWithParams")]
public ActionResult SelectInstitutionToEdit(string message){...}
然后你应该用它的新名称来调用它。像这样:
@using (Html.BeginForm("SelectInstitutionToEditWithParams", "yourController"))
{
}
答案 3 :(得分:1)
如果重载的Action方法具有相同的get / post调用,请使用[ActionName("SomeOtherName")]
。