два контроллера с одинаковыми параметрами - PullRequest
1 голос
/ 22 марта 2010

у меня есть 2 действия

public ActionResult FilesAdd(int id)
    {
        FillParentMenuDDL(id);
        return View();
    }

    [HttpPost]
    public ActionResult FilesAdd(int id)
    {
        //some logic...
        FillParentMenuDDL(id);
        return View();
    }

но это ошибка из-за тех же параметров, но мне нужен только один параметр. сначала я вызываю страницу / действие / идентификатор, а затем отправляю его, например, с идентификатором и загруженным файлом, но я получаю доступ к файлу с помощью request.files [0]. так какое решение с контроллерами и такими же параметрами? я вижу только объявить FilesAdd (int? id) в одном контроллере

Ответы [ 3 ]

3 голосов
/ 22 марта 2010

.Net MVC имеет ActionNameAttribute для этой цели.Переименуйте ваше второе действие во что-то вроде FilesAddPost, а затем используйте ActionNameAttribute("FilesAdd")

public ActionResult FilesAdd(int id)
{
    FillParentMenuDDL(id);
    return View();
}

[HttpPost]
[ActionName("FilesAdd")]
public ActionResult FilesAddPost(int id)
{
    //some logic...
    FillParentMenuDDL(id);
    return View();
}
1 голос
/ 22 марта 2010

Добавить (неиспользованный) параметр формы в действие POST.Это сделает сигнатуры методов другими.

[HttpPost]
public ActionResult FilesAdd(int id, FormCollection form)
{
    //some logic...
    FillParentMenuDDL(id);
    return View();
}
0 голосов
/ 22 марта 2010

Вы можете контролировать действие отправленной формы, не нужно переходить к тому же действию.

// Works under MVC 2.0 
<% using (Html.BeginForm("action", "controller", FormMethod.Post)) { %> 
// code
<% } %> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...